支持 Javascript 链式关系运算符吗?

2024-04-28

我只是尝试了一些 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

这甚至是官方支持的吗?我还发现文献/文档中没有提及这方面的内容,我很困惑为什么这甚至有效。

有人可以点亮一下吗?


它们是二元运算符,具有左结合性。它们被解析为

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)

并将布尔部分结果与数字进行比较。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

支持 Javascript 链式关系运算符吗? 的相关文章

随机推荐