为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

正在回答

2 回答

!=表示不等于。

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

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

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

if(myname=null)

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

alert("你好 my friend.");

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

0 回复 有任何疑惑可以回复我~
#1

流海侃人 提问者

就是说"!="就是数学上的"≠"不等号,就像">="就是数学上的"≥"大于等于号一样是吗? 那有的在变量前面加上一个!是表示什么呢?
2016-03-27 回复 有任何疑惑可以回复我~
#2

流海侃人 提问者

非常感谢!
2016-03-27 回复 有任何疑惑可以回复我~
#3

howyoung 回复 流海侃人 提问者

对,没错。 在一个布尔变量(即只有True或False两种值)前面加上一个!表示逻辑非(即取相反的值),例如 var1 = true; var2 = !var1; 那么var2就为false.
2016-03-27 回复 有任何疑惑可以回复我~

表示否,非

0 回复 有任何疑惑可以回复我~
#1

流海侃人 提问者

能够解释的稍微详细一点么?
2016-03-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信