總結 JavaScript 中所有的運算符優先級和結合性

優先級由高到低:
1 ()
2 ./[] 左
2 new MemberExpression Arguments
3 new MemberExpression 右
4 () 函數調用 左
5 ++/--
6 +/-/~/!/delete/typeof/void/await 右
7 ** 右
8 *///% 左
9 +/- 左
10 << >> >>> 左
11 < > <= >= instance of in 左
12 == === != !== 左
13 & 左
14 ^ 左
15 | 左
16 && 左
17 || 左
18 ?: 右
19 = 右
20 , 左

不過MDN上的一份整理是這樣的:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

 

 

主要不同的地方集中在:
1. 函數調用與New Expression的優先級順序(上一課文中有一句不是很理解:而 Call Expression 就失去了比 New Expression優先級高的特性,這是一個主要的區分)
2. ++/-- 前置和後置的優先級順序(MDN上前置後置優先級是不同的)
3. 缺少了 yield/yield*/...這三個運算符

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章