JavaScript ลำดับความสำคัญของการคำนวณ

運算子優先順位(Operator Precedence)描述了算術表達式中運算的執行順序。

乘法 (*) 和除法 (/) 的優先順位高於加法 (+) 和減法 (-)。

實例

與傳統數學一樣,先進行乘法運算:

let x = 100 + 50 * 3;

親自試一試

使用圓括號時,先計算圓括號內的運算:

let x = (100 + 50) * 3;

親自試一試

優先順位相同的運算(如 * 和 /)從左到右計算:

let x = 100 / 50 * 3;

親自試一試

運算子優先順位值

括號中的表達式在表達式的其餘部分之前計算,函數在結果用於表達式的其餘部分之前執行:

優先順位 運算子 描述 例子
18 ( ) 表达式分组 (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

ดูเพิ่มเติม

ตัวเรียน:สัญญาณการคำนวณ JavaScript

คู่มือติดตาม:สัญญาณการคำนวณ JavaScript