JavaScript 運算符優先級

優先級描述了在算術表達式中操作的執行順序。

實例

在傳統數學中,乘法先執行:

let x = 100 + 50 * 3;

親自試一試

使用括號時,括號內的操作先計算:

let x = (100 + 50) * 3;

親自試一試

當運算符具有相同的優先級(如 + 和 -),它們從左到右計算:

let x = 100 / 50 * 3;

親自試一試

運算符優先級值

括號內的表達式先于其余表達式計算。

函數在結果用于其余表達式之前執行。

運算符 描述 例子
18 ( ) 表達式分組 (100 + 50) * 3
17 . 成員 car.name
17 [] 成員 car["name"]
17 ?. 可選鏈 ES2020 x ?. y
17 () 函數調用 myFunction()
17 new 帶參數的新建 new Date("June 6,2025")
16 new 無參數的新建 new Date()

遞增運算符

后綴遞增先于前綴遞增執行。

15 ++ 后綴遞增 i++
15 -- 后綴遞減 i--
14 ++ 前綴遞增 ++i
14 -- 前綴遞減 --i

NOT 運算符

14 ! 邏輯 NOT !(x==y)
14 ~ 位 NOT ~x

一元運算符

14 + 一元加 +x
14 - 一元減 -x
14 typeof 數據類型 typeof x
14 void 求值 Void void(0)
14 delete 屬性刪除 delete myCar.color

算術運算符

乘方先于乘法執行。

乘法和除法先于加法和減法執行。

13 ** 乘方 ES2016 10 ** 2
12 * 乘法 10 * 5
12 / 除法 10 / 5
12 % 取余 10 % 5
11 + 加法 10 + 5
11 - 減法 10 - 5
11 + 連接 "Bill" + "Gates"

移位運算符

10 << 左移 x << 2
10 >> 右移(有符號) x >> 2
10 >>> 右移(無符號) x >>> 2

關系運算符

9 in 對象中的屬性 "PI" in Math
9 instanceof 對象的實例 x instanceof Array

比較運算符

9 < 小于 x < y
9 <= 小于等于 x <= y
9 > 大于 x > y
9 >= 大于等于 x >= Array
8 == 等于 x == y
8 === 嚴格等于 x === y
8 != 不等于 x != y
8 !== 嚴格不等于 x !== y

位運算符

7 & 位 AND x & y
6 ^ 位 XOR x ^ y
5 | 位 OR x | y

邏輯運算符

4 && 邏輯 AND x && y
3 || 邏輯 OR x || y
3 ?? 空值合并 ES2020 x ?? y

條件(三元)運算符

2 ? : 條件 ? "yes" : "no"

賦值運算符

賦值在其他操作之后執行。

2 = 簡單賦值 x = y
2 += 加法賦值 x += y
2 -= 減法賦值 x -= y
2 *= 乘法賦值 x *= y
2 **= 乘方賦值 x **= y
2 /= 除法賦值 x /= y
2 %= 取余賦值 x %= y
2 <<= 左移賦值 x <<= y
2 >>= 右移賦值 x >>= y
2 >>>= 無符號右移 x >>>= y
2 &= 位 AND 賦值 x &= y
2 |= 位 OR 賦值 x |= y
2 ^= 位 XOR 賦值 x ^= y
2 &= 邏輯 AND 賦值 x &= y
2 ||= 邏輯 OR 賦值 x ||= y
2 : 冒號賦值 x : 5
2 => 箭頭 x => y
2 yield 暫停/恢復 yield x
2 yield* 委托 yield* x
2 ... 擴展 ...x
1 , 逗號 x , y