(0 <= 0 <= 0) === false
(-1 < 0 <= 0 <= 0) === true
这里发生了什么? Javascript实际上是否存在不等式链接,在某些情况下是错误的?
答案 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
。