为什么在 JavaScript 中,“if ('0' == false)” 等于 false,而在“if(0)” 语句中却得到 true?


让我们逐一查看这些条件 -

if(‘0’ == false)

它遵循以下规则 -

If Type(y) is Boolean, return the result of the comparison x == ToNumber(y)

== 运算符会进行类型强制转换。这意味着请求显式类型转换以匹配两个操作数的类型。左侧的 '0' 被转换为数字 0。在比较这两个数字时,由于 0 等于 0,因此结果为 true。在这种情况下,这不起作用,因为它没有暗示 '0' 字符串的真/假性质,因为它在比较之前就被强制转换了。

if(0)

这检查字符串是否为空或空,而不是它是否为零。始终记住,非空字符串为真。此处不使用类型强制转换,因为字符串可以根据其自身优点评估为真或假。

更新于: 2020年6月16日

1K+ 浏览量

开启你的 职业生涯

完成课程获得认证

开始学习
广告

© . All rights reserved.