我只是玩了一些JS核心原则并发现,引擎评估链式关系运算符而不会抛出错误.相反,它们是以我自己无法理解的方式进行评估的.
console.log(1 < 2 < 3 < 4 < 5); //true, expected
console.log(5 > 4 > 3 > 2 > 1); //false, should be true
console.log(5 >= 4 >= 3); //false, should be true
console.log(7 >= -2 >= 1); //true, should be false
console.log(1 <= -2 <= 7); //true, should be false
Run Code Online (Sandbox Code Playgroud)
这是否得到官方支持?我也没有在文献/文献中提到这一点,我很困惑为什么这甚至有效.
有人可以点亮一下吗?
它们是二元运算符,具有左关联性.他们被解析为
console.log((((1 < 2) < 3) < 4) < 5); // true (true < 5)
console.log((((5 > 4) > 3) > 2) > 1); // false (true > 1)
console.log((5 >= 4) >= 3); // false (true >= 3)
console.log((7 >= -2) >= 1); // true (true >= 1)
console.log((1 <= -2) <= 7); // true (false <= 7)
Run Code Online (Sandbox Code Playgroud)
并将布尔部分结果与数字进行比较.
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |