Javascript:null==0返回false,但null<;1返回true。请解释一下

Javascript:null==0返回false,但null<;1返回true。请解释一下,javascript,type-conversion,implicit-conversion,Javascript,Type Conversion,Implicit Conversion,确实是非常奇怪的行为 请解释每种情况下发生的隐式转换。null将转换为数字0(因为这不能解释等式情况,也不能解释为什么null突然变成null

确实是非常奇怪的行为


请解释每种情况下发生的隐式转换。

null
将转换为数字
0
(因为
这不能解释等式情况,也不能解释为什么
null
突然变成
null<1
-case@KooiInc答案清楚地表明,
null
被转换为一个数字,因为
null
的使用不等于0,所以
null==0
正确产生false。只有使用显式类型转换
+null==0
时,才会返回true。如果
null<1
null将自动转换为数字(0),因此
0<1
产生true。传统上,根据ECMAScript,所有对象都松散地不等于未定义和null。但是大多数浏览器允许非常狭窄的对象类(特别是任何页面的document.all对象),在某些上下文中,充当模拟未定义值的角色。松散相等就是这样一种上下文:null==A和undefined==A当且仅当A是模拟未定义值的对象时,计算为true。在所有其他情况下,对象从不松散相等于undefined或null。”