Prioritas Operator JavaScript

Prioriti operator (Operator Precedence) menggambarkan urutan eksekusi operasi dalam ekspresi aritmetika.

Prioriti operator kali (*) dan bagi (/) lebih tinggi daripada tambah (+) dan kurang (-).

Contoh kasus

Seperti matematika tradisional, operasi kali dijalankan terlebih dahulu:

let x = 100 + 50 * 3;

Coba sendiri

Ketika menggunakan kurung bulat, hitung terlebih dahulu ekspresi di dalam kurung bulat:

let x = (100 + 50) * 3;

Coba sendiri

Operasi dengan prioriti yang sama (seperti * dan /) dihitung dari kiri ke kanan:

let x = 100 / 50 * 3;

Coba sendiri

Nilai prioriti operator

Ekspresi dalam kurung dihitung sebelum bagian lain dari ekspresi, fungsi dijalankan sebelum hasil digunakan dalam ekspresi lain:

Prioriti Operator Deskripsi Contoh
18 ( ) Ekspresi pemisahan (100 + 50) * 3
17 . 屬於成員 person.name
17 [] 屬於成員 person["name"]
17 ?. 可選鏈 ES2020 x ?. y
17 () 函數調用 myFunction()
17 new 帶參的新建 new Date("June 5,2022")
16 new 不带參的新建 new Date()

增量運算子

後綴遞增在前綴遞增之前執行。

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

NOT 運算子

14 ! 邏輯非 !(x==y)
14 ~ 按位非 ~x

一元運算子

14 + 一元加 +x
14 - 一元減 -x
14 typeof 數據類型 typeof x
14 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 & 按位與 x & y
6 ^ 按位異或 x ^ y
5 | 按位或 x | y

邏輯運算子

4 && 邏輯與 x && y
3 || 邏輯或 x || y
3 ?? 空值合併 ES2020 x ?? y

条件(三元)運算子

2 ? : 条件 ? "yes" : "no"

赋值运算符

赋值在其他操作之后执行。

2 = 简单赋值 x = y
2 : 冒号赋值 x: 5
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 |= 位或赋值 x |= y
2 ^= 位异或赋值 x ^= y
2 &&= 逻辑与赋值 x &= y
2 ||= 逻辑或赋值 x ||= y
2 => 箭头 x => y
2 yield 暂停 / 恢复 yield x
2 yield* 委托运算符 yield* x
2 ... 展开运算符 ... x
1 , 逗号 x , y

另请参阅

教程:Operator JavaScript

参考手册:Operator JavaScript