为什么在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'字符串的伪善/虚假性质,因为它在比较之前就被强制了。
如果
这将检查字符串是否为null或为空,而不是是否为零。永远记住,非空字符串为true。这里不使用类型强制,因为可以根据字符串的优劣将字符串评估为伪或伪。