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