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

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

4

2 回答 2

8

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

于 2013-03-17T20:52:41.850 回答
6

没有操作符的链接,但有优先级。这里所有的操作符都有相同的优先级,所以操作是从左到右进行的。

当您的比较涉及布尔值时,MDN 会解释比较的工作原理

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

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

((0 <= 0) <= 0)

这是

true <= false

这是

false

第二个是

(true <= 0) <= 0

这是

false <= 0 

这是true

于 2013-03-17T20:55:24.827 回答