运算符优先级

运算符优先级,从上到下依次减低

运算符 描述
. [] () 字段访问、数组下标、函数调用以及表达式分组
++ – - ~ ! delete new typeof void 一元运算符、返回数据类型、对象创建、未定义值
* / % 乘法、除法、取模
+ - + 加法、减法、字符串连接
<< >> >>> 移位
< <= > >= instanceof 小于、小于等于、大于、大于等于、instanceof
== != === !== 等于、不等于、严格相等、非严格相等
& 按位与
^ 按位异或
| 按位或
&& 逻辑与
|| 逻辑或
?: 条件
= oP= 赋值、运算赋值
, 多重求值

MDN更详细的优先级

还有一些影响运算结果(左右关联)的因素,参考你不知道的JavaScript中卷 128页左右

运算符左右关联

左关联

&&||

1
2
a && b && c
(a && b) && c

右关联

三元运算符 和 =

1
2
3
a ? b : c ? d : e;

a ? b : (c ? d : e)
1
2
a && b || c ? c || b ? a : c && b : a;
((a && b) || c) ? ((c || b) ? a : (c && b)) : a