为什么在 JavaScript 中,"if ('0' == false)" 等于 false,而在"if(0)" 语句中却返回 true?

javascriptweb developmentfront end technology

让我们逐一查看条件 − 

if(‘0’ == false)

它遵循以下规则 −

如果 Type(y) 为布尔值,则返回比较 x == ToNumber(y) 的结果

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

if(0)

这检查字符串是否为 null 或空,而不是是否为零。永远记住,非空字符串为真。这里不使用类型强制转换,因为可以根据字符串本身的优点将其评估为真或假。


相关文章