答案 0 :(得分:7)
0 == null
永远不会true
。 “松散比较”null
仅等于自身或undefined
。
然而,关系运算符首先将其操作数转换为数字,如果其中任何一个是数字。因此,由于0
是一个数字,null
会转换为数字。 null
的数学值为0
。所以你最终比较
0 > 0 // nope
0 >= 0 // yes
0 == null // nope, null is only equal to null and undefined
0 <= 0 // yes
0 < 0 // nope
这些规则都在ECMAScript specification中定义(无论它们是否有意义都是一个不同的问题)。