所以,当我遇到这样的问题时,我正在做我的一个项目:
var one = 1;
var two = 2;
var three = 7;
if (one === 1 || two === 2 && three === 3) {
console.log("ok"); // prints out ok
}
我对此很困惑,因为我认为它不应该打印出“ok”。我认为由于 && 运算符之后的条件为假,它不应该运行,但我显然错了。任何人都可以阐明它为什么起作用吗?
最佳答案
在 Javascript 中,运算符不仅仅是从左到右求值,某些运算符 have more precedence than others .具有更高优先级的那些(在本例中,优先级为 13 的 &&
运算符)将在其他优先级(||
,优先级为 14)之前进行评估。
对于您的特定情况,您需要对条件进行分组以实现您想要的功能:
if ((one === 1 || two === 2) && three === 3) {
console.log("ok"); // prints out ok
}
关于javascript - &&/|| JavaScript 中的运算符奇怪性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24370736/