下面显示"0"了Javascript中的false:
"0"
>>> "0" == false true >>> false == "0" true
那么,为什么要打印以下内容"ha"?
"ha"
>>> if ("0") console.log("ha") ha
原因是因为当您显式这样做时"0" == false,双方都将转换为数字, 然后 执行比较。
"0" == false
当您执行以下操作:时if ("0") console.log("ha"),正在测试字符串值。任何非空字符串为true,而空字符串为false。
if ("0") console.log("ha")
true
false
等于(==)如果两个操作数 的类型不同 ,则JavaScript会转换操作数,然后进行严格比较。如果操作数是 数字或布尔值,则如果可能,将操作数转换为数字;否则,操作数将转换为数字。否则,如果其中一个操作数是 字符串 ,则将另一个操作数转换为字符串(如果可能)。如果两个操作数都是对象,则JavaScript将比较内部引用,当操作数引用内存中的同一对象时,内部引用是相等的。