alert(' '==0);为什么是true啊?

新手上路,请多包涵

alert(' '==0);//true
弹出的是true,' '应该是false吧?

阅读 3.9k
5 个回答

使用==比较两个不同类型的值会先转换,''会转换为falsefalse又转换为0,所以0 == 0true。例如:

true == 1 //true,  true转为1
'2' == 2  //true,  '2'转为2

而使用===比较会先判断两个值类型,如果不一样则直接返回false,否则才会比较值,例如:

'' === 0   //false

javascript中,双等号(==)会比较等号两端的内容,比如:"23" == 23,这时候返回的是true;三等号(===)不仅会比较等号两端内容,还会比较等号两端内容的类型,比如:"23" === 23则返回false,等号两端内容相同,但是类型不一致,左边是string类型,右边是number类型。在JavaScript中,非0都为true,非空都为true""是空,所以为false

false == 0 。貌似的确是 true.

都是「 非1 」,所以是 true

非严格模式下
0、空字符串和false归为一类,称为"假值"
null和undefined归为一类,称为"空值"

具体可参考
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题