为什么在 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 或空,而不是是否为零。永远记住,非空字符串为真。这里不使用类型强制转换,因为可以根据字符串本身的优点将其评估为真或假。