素材牛VIP会员
alert(' '==0);为什么是true啊?
 阿***扫  分类:JavaScript  人气:952  回帖:5  发布于6年前 收藏

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

 标签:html5javascript

讨论这个帖子(5)垃圾回帖将一律封号处理……

Lv6 码匠
阿***斤 CEO 6年前#1

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

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

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

'' === 0   //false
Lv6 码匠
qx***23 Linux系统工程师 6年前#2

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

具体可参考

Lv6 码匠
hj***jh 软件测试工程师 6年前#3

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

Lv6 码匠
a8***12 Linux系统工程师 6年前#4

都是「 非1 」,所以是 true

Lv4 码徒
想***儿 技术总监 6年前#5

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

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取