总结 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*/...这三个运算符

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