返回

揭秘 JavaScript 中 && 和 || 运算符优先级

前端

&& 和 || 运算符

在 JavaScript 中,&& 和 || 是两个常用的逻辑运算符,它们分别表示逻辑与和逻辑或。逻辑与运算符 && 会返回其操作数中所有表达式的布尔值,只要有一个表达式为 false,整个表达式的结果就会为 false;如果所有表达式都为 true,整个表达式的结果才会为 true。逻辑或运算符 || 会返回其操作数中第一个为 true 的表达式的布尔值,只要有一个表达式为 true,整个表达式的结果就会为 true;如果所有表达式都为 false,整个表达式的结果才会为 false。

优先级

在 JavaScript 中,&& 和 || 运算符的优先级相同,都为 10,仅次于赋值运算符(优先级为 20)和三元运算符(优先级为 15)。这意味着,当多个 && 或 || 运算符同级出现时,它们将按照从左到右的顺序依次执行。例如,以下代码中,表达式 (a && b) || c 的结果将为 b,因为 && 运算符的优先级高于 || 运算符,因此先执行 (a && b),再执行 || c。

const a = true;
const b = false;
const c = true;
const result = (a && b) || c;
console.log(result); // 输出:false

运算规则

当 && 和 || 运算符同级出现时,它们将按照以下规则执行:

  • 首先,从左到右扫描表达式,找到第一个运算符。
  • 其次,执行该运算符,并返回其结果。
  • 然后,继续从左到右扫描表达式,找到下一个运算符。
  • 重复步骤 2 和 3,直到表达式中所有运算符都已执行。
  • 最后,返回整个表达式的结果。

例如,以下代码中,表达式 a && b || c 的结果将为 true,因为 && 运算符的优先级高于 || 运算符,因此先执行 a && b,再执行 || c。

const a = true;
const b = true;
const c = false;
const result = a && b || c;
console.log(result); // 输出:true

注意事项

在使用 && 和 || 运算符时,需要注意以下几点:

  • && 和 || 运算符的优先级相同,都为 10。
  • 当多个 && 或 || 运算符同级出现时,它们将按照从左到右的顺序依次执行。
  • && 运算符会返回其操作数中所有表达式的布尔值,只要有一个表达式为 false,整个表达式的结果就会为 false;如果所有表达式都为 true,整个表达式的结果才会为 true。
  • || 运算符会返回其操作数中第一个为 true 的表达式的布尔值,只要有一个表达式为 true,整个表达式的结果就会为 true;如果所有表达式都为 false,整个表达式的结果才会为 false。

总结

&& 和 || 是 JavaScript 中常用的逻辑运算符,它们分别表示逻辑与和逻辑或。在使用这些运算符时,需要注意它们的优先级以及运算规则,以便正确地使用它们来实现预期的效果。