JavaScript 运算符优先级

在 JavaScript 中,运算符优先级决定了表达式中运算符执行的顺序。当一个表达式中存在多个运算符时,根据优先级规则确定运算的顺序。以下是 JavaScript 中常见运算符的优先级,从高到低排列:

  1. 成员访问 (Member Access):
  • . (点运算符)
  • [] (方括号运算符)
  1. 函数调用 (Function Call):
  • ()
  1. 递增/递减 (Increment/Decrement):
  • ++, -- (前缀)
  • ++, -- (后缀)
  1. 一元运算符 (Unary):
  • +, - (一元正号和负号)
  • ! (逻辑非)
  • typeof
  • void
  • delete
  1. 乘法/除法/求余 (Multiplication/Division/Remainder):
  • *, /, %
  1. 加法/减法 (Addition/Subtraction):
  • +, -
  1. 关系运算符 (Relational):
  • <, <=, >, >=, instanceof, in
  1. 相等运算符 (Equality):
  • ==, !=, ===, !==
  1. 按位与 (Bitwise AND):
  • &
  1. 按位异或 (Bitwise XOR):
    • ^
  2. 按位或 (Bitwise OR):
    • |
  3. 逻辑与 (Logical AND):
    • &&
  4. 逻辑或 (Logical OR):
    • ||
  5. 条件运算符 (Conditional):
    • ? :
  6. 赋值运算符 (Assignment):
    • =, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, ^=, |=
  7. 逗号 (Comma):
    • ,

优先级高的运算符先被计算,优先级低的运算符后被计算。如果有相同优先级的运算符,则根据结合性(从左到右或从右到左)进行计算。可以使用括号来改变运算符的优先级。

JavaScript的结合性

JavaScript 中的运算符具有不同的结合性,结合性决定了相同优先级的运算符在表达式中如何组合。JavaScript 中的大多数运算符都是从左向右结合的,这意味着具有相同优先级的运算符将从左到右依次执行。然而,也有一些特殊情况,例如赋值运算符和三元条件运算符具有右结合性。

以下是 JavaScript 中常见运算符的结合性:

  1. 左结合性
  • 大多数运算符都是左结合的,例如加法运算符 +、逻辑与运算符 &&、逻辑或运算符 || 等。
  • 左结合性表示具有相同优先级的运算符将从左到右依次执行,例如 a + b + c 中,先执行 a + b,然后再与 c 相加。
  1. 右结合性
  • 一些运算符具有右结合性,例如赋值运算符 =、三元条件运算符 ? : 等。
  • 右结合性表示具有相同优先级的运算符将从右到左依次执行,例如 a = b = c 中,先执行 b = c,然后再执行 a = b
  1. 无结合性
  • 一些运算符没有结合性,例如逗号运算符 ,
  • 无结合性表示运算符不能被连续使用,每个运算符都需要与其他运算符分开处理。

了解运算符的结合性对于正确理解和编写复杂表达式非常重要,可以通过结合使用括号来明确表达式的执行顺序。

Leave a Reply

Your email address will not be published. Required fields are marked *