Javascript链式不等式给出了奇怪的结果

时间:2013-03-17 20:52:42

标签: javascript

(0 <= 0 <= 0) === false
(-1 < 0 <= 0 <= 0) === true

这里发生了什么? Javascript实际上是否存在不等式链接,在某些情况下是错误的?

2 个答案:

答案 0 :(得分:6)

输入问题然后被答案打动了。 Javascript没有不等式链接。相反,0 <= 0 <= 0变为true <= 0,其评估为1 <= 0。实际上,0 < 0 <= 0评估为true

答案 1 :(得分:3)

除了precedence之外没有运营商的链接。这里所有操作符都具有相同的优先级,因此操作从左到右完成。

当您的比较涉及布尔值the MDN explains how the comparison works

  

如果其中一个操作数是布尔值,则将布尔操作数转换为   如果为真则为1,如果为假则为+0。

这意味着第一个操作根据优先级分解为

((0 <= 0) <= 0)

true <= false

false

第二个是

(true <= 0) <= 0

false <= 0 

true