JavaScript AND / OR Operand



AND &&大于OR ||。这就是为什么它在OR之前工作。

在下面的示例中,首先计算1 && 0

alert( 5 || 1 && 0 ); // 5
我不明白这是怎么发生的?

将首先计算左边的值。请参见示例

a || (b * c);  // evaluate `a` first, then produce `a` if `a` is "truthy"
a && (b < c);  // evaluate `a` first, then produce `a` if `a` is "falsy"
a ?? (b || c); // evaluate `a` first, then produce `a` if `a` is not `null` and not `undefined`
a?.b.c;        // evaluate `a` first, then produce `undefined` if `a` is `null` or `undefined`

来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

请查看操作符优先级查看详细信息。

顺序从左到右,当左边前面的任何部分求值为真时,右边的其余部分不求值并被省略。

console.log(5 || false); // 5
console.log(true || 5 || false); // true
console.log(false || 5 || 10); // 5
console.log(false || 10 || 5); // 10

最新更新