为什么例子中要给if引用的变量加上"!"(感叹号)?

来源:2-4 JavaScript-提问(prompt 消息对话框)

流海侃人

2016-03-27 15:21

var myname=prompt("请输入你的姓名:");
if(myname!=null)
  {   alert("你好"+myname); }
else
  {  alert("你好 my friend.");  }

为何要在第二行
if(myname!=null)中给myname后面加上感叹号?
我试了一下不加感叹号也可以啊.

写回答 关注

2回答

  • howyoung
    2016-03-27 15:39:32
    已采纳

    !=表示不等于。

    至于为什么不加也可以运行是因为=为赋值符号,比如当你写

    var a;
    alert(a = 2);
    alert(a);

    时,你会发现返回了两次2,所以代码里如果写成

    if(myname=null)

    的话实际是给myname赋了空值(null),同时返回空值,所以无论myname是否为空,都执行了

    alert("你好 my friend.");

    这样写会使代码与预期不符,是错误的。

    howyou... 回复流海侃人

    对,没错。 在一个布尔变量(即只有True或False两种值)前面加上一个!表示逻辑非(即取相反的值),例如 var1 = true; var2 = !var1; 那么var2就为false.

    2016-03-27 22:21:37

    共 3 条回复 >

  • xulin_
    2016-03-27 15:25:39

    表示否,非

    流海侃人

    能够解释的稍微详细一点么?

    2016-03-27 15:32:42

    共 1 条回复 >

JavaScript入门篇

JavaScript做为一名Web工程师的必备技术,本教程让您快速入门

738245 学习 · 9560 问题

查看课程

相似问题