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