(0 <= 0 <= 0) === false
(-1 < 0 <= 0 <= 0) === true
这里发生了什么?Javascript 实际上是否具有在某些情况下错误的不等式链接?
(0 <= 0 <= 0) === false
(-1 < 0 <= 0 <= 0) === true
这里发生了什么?Javascript 实际上是否具有在某些情况下错误的不等式链接?
输入了问题,然后被答案打动了。Javascript 没有不等式链接。相反,0 <= 0 <= 0
变成true <= 0
,它被评估为1 <= 0
。确实,0 < 0 <= 0
评估为true
。
没有操作符的链接,但有优先级。这里所有的操作符都有相同的优先级,所以操作是从左到右进行的。
当您的比较涉及布尔值时,MDN 会解释比较的工作原理:
如果其中一个操作数是布尔值,则布尔操作数如果为真则转换为 1,如果为假则转换为 +0。
这意味着第一个操作根据优先级分解为
((0 <= 0) <= 0)
这是
true <= false
这是
false
第二个是
(true <= 0) <= 0
这是
false <= 0
这是true
。