【发布时间】:2013-03-17 20:52:41
【问题描述】:
(0 <= 0 <= 0) === false
(-1 < 0 <= 0 <= 0) === true
这里发生了什么? Javascript 是否真的有在某些情况下错误的不等式链接?
【问题讨论】:
-
啊,你说得对,菲利克斯。对于那个很抱歉;我在发帖前搜索了一段时间,但没有看到那个。我有什么办法可以直接将其作为副本关闭?
标签: javascript
(0 <= 0 <= 0) === false
(-1 < 0 <= 0 <= 0) === true
这里发生了什么? Javascript 是否真的有在某些情况下错误的不等式链接?
【问题讨论】:
标签: javascript
输入了问题,然后被答案打动了。 Javascript 没有不等式链接。相反,0 <= 0 <= 0 变为 true <= 0,其计算结果为 1 <= 0。实际上,0 < 0 <= 0 的计算结果为 true。
【讨论】:
除了precedence 之外没有运算符链接。这里所有的操作符都有相同的优先级,所以操作是从左到右进行的。
当您的比较涉及布尔值时,the MDN explains how the comparison works:
如果其中一个操作数是布尔值,则布尔操作数转换为 1 为真,+0 为假。
这意味着第一个操作根据优先级分解为
((0 <= 0) <= 0)
这是
true <= false
这是
false
第二个是
(true <= 0) <= 0
这是
false <= 0
这是true。
【讨论】: