--- title: 運算子優先序 slug: Web/JavaScript/Reference/Operators/Operator_Precedence tags: - JavaScript - Operator - precedence translation_of: Web/JavaScript/Reference/Operators/Operator_Precedence ---
{{jsSidebar("Operators")}}

運算子優先序(Operator precedence)決定了運算子彼此之間被語法解析的方式,優先序較高的運算子會成為優先序較低運算子的運算元(operands)。

{{EmbedInteractiveExample("pages/js/expressions-operatorprecedence.html")}}

相依性(Associativity)

當優先序相同時,使用相依性決定運算方向。範例如下:

a OP b OP c

左相依性 (Left-associativity) ,表示處理順序為從左至右 (a OP b) OP c,反之,右相依性(right-associativity) 表示處理順序為從右至左 a OP (b OP c)。賦值運算符 (Assignment operators) 為右相依性,範例如下:

a = b = 5;

ab 的預期結果為 5,因為賦值運算符 (Assignment operator) 為右相依性,因此從右至左返回值。一開始 b 被設定為 5,接著 a 也被設定為 5。

表格(Table)

下方表格列出運算子的相依性,從高 (20) 到低 (1)。

優先性
Precedence
運算子名稱
Operator type
相依性
Associativity
運算子
Individual operators
20 {{jsxref("Operators/Grouping", "Grouping")}} ( … )
19 {{jsxref("Operators/Property_Accessors", "Member Access", "#Dot_notation")}} 從左至右 … . …
{{jsxref("Operators/Property_Accessors", "Computed Member Access","#Bracket_notation")}} 從左至右 … [ … ]
{{jsxref("Operators/new","new")}} (with argument list) new … ( … )
Function Call 從左至右 … ( … )
18 {{jsxref("Operators/new","new")}} (without argument list) 從右至左 new …
17 {{jsxref("Operators/Arithmetic_Operators","Postfix Increment","#Increment")}} … ++
{{jsxref("Operators/Arithmetic_Operators","Postfix Decrement","#Decrement")}} … --
16 Logical NOT 從右至左 ! …
Bitwise NOT ~ …
Unary Plus + …
Unary Negation - …
Prefix Increment ++ …
Prefix Decrement -- …
typeof typeof …
void void …
delete delete …
await await …
15 Exponentiation 從右至左 … ** …
14 Multiplication 從左至右 … * …
Division … / …
Remainder … % …
13 Addition 從左至右 … + …
Subtraction … - …
12 Bitwise Left Shift 從左至右 … << …
Bitwise Right Shift … >> …
Bitwise Unsigned Right Shift … >>> …
11 Less Than 從左至右 … < …
Less Than Or Equal … <= …
Greater Than … > …
Greater Than Or Equal … >= …
in … in …
instanceof … instanceof …
10 Equality 從左至右 … == …
Inequality … != …
Strict Equality … === …
Strict Inequality … !== …
9 Bitwise AND 從左至右 … & …
8 Bitwise XOR 從左至右 … ^ …
7 Bitwise OR 從左至右 … | …
6 Logical AND 從左至右 … && …
5 Logical OR 從左至右 … || …
4 Conditional 從右至左 … ? … : …
3 Assignment 從右至左 … = …
… += …
… -= …
… **= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2 yield 從右至左 yield …
yield* yield* …
1 Comma / Sequence 從左至右 … , …