JS运算符执行顺序
执行顺序如下:
优先级 | 运算符 | 说明 | 结合性 |
---|---|---|---|
1 | []、.、() | 字段访问、数组索引、函数调用和表达式分组 | 从左向右 |
2 | ++ -- -~!delete new typeof void | 一元运算符、返回数据类型、对象创建、未定义的值 | 从右向左 |
3 | *、/、% | 相乘、相除、求余数 | 从左向右 |
4 | +、- | 相加、相减、字符串串联 | 从左向右 |
5 | <<、>>、>>> | 左位移、右位移、无符号右移 | 从左向右 |
6 | <、<=、>、>=、instanceof | 小于、小于或等于、大于、大于或等于、是否为特定类的实例 | 从左向右 |
7 | ==、!=、===、!== | 相等、不相等、全等,不全等 | 从左向右 |
8 | & | 按位“与” | 从左向右 |
9 | ^ | 按位“异或” | 从左向右 |
10 | | | 按位“或” | 从左向右 |
11 | && | 短路与(逻辑“与”) | 从左向右 |
12 | || | 短路或(逻辑“或”) | 从左向右 |
13 | ?: | 条件运算符 | 从右向左 |
14 | =、+=、-=、*=、/=、%=、&=、 | =、^=、<、<=、>、>=、>>= | 混合赋值运算符 |
15 | , | 多个计算 | 按优先级计算,然后从右向左 |