Javascript比较问题(null> = 0)

Eon*_*nil 28 javascript comparison

我该怎么理解这些?

null>0
> false

null==0
> false

null>=0
> true
Run Code Online (Sandbox Code Playgroud)

CMS*_*CMS 21

关系运算符(>=<=)执行类型强制(ToPrimitive),使用提示类型Number,所有存在的关系运算符都有此行为.

您可以在抽象关系比较算法中查看此过程的内部详细信息.

另一方面,Equals运算符(==),如果一个操作数null,它只返回true另一个是null或者undefined,没有数字类型强制.

null == undefined; // true
null == null; // true
Run Code Online (Sandbox Code Playgroud)

抽象关系比较算法中检查此过程的内部细节.

推荐文章:


Poi*_*nty 5

相对比较运算符意味着数字上下文,因此在这些情况下 ( >, >=) 将null转换为数字(零)。

==然而,在这种情况下,两个值都被视为布尔值,Javascript 认为这null不应该等于任何其他“假”值。这有点奇怪。的等式算法==有很多特殊情况,null就是其中之一。它只==对它自己和undefined.