相关信息
在 JavaScript 中,算术操作符和其他运算符有严格的优先级规则。以下是一个涵盖 JavaScript 算术优先级(以及其他常见运算符优先级)的完整清单,优先级从高到低排列。优先级越高,运算符会越早被执行。
| 优先级 | 运算符 | 描述 | 结合性 |
|---|---|---|---|
| 1 | () | 圆括号(分组) | 从左到右 |
| 2 | . [] () | 成员访问、数组索引、函数调用 | 从左到右 |
| 3 | new(带参数列表) | 创建对象实例 | 从右到左 |
| 4 | ++ --(后缀) | 自增、自减(后缀形式) | 从左到右 |
| 5 | ++ --(前缀)、+ - | 自增、自减(前缀)、正负号 | 从右到左 |
~ ! typeof void delete | 按位取反、逻辑非、类型、空值、删除 | 从右到左 | |
| 6 | ** | 幂运算 | 从右到左 |
| 7 | * / % | 乘法、除法、取余 | 从左到右 |
| 8 | + - | 加法(字符串拼接)、减法 | 从左到右 |
| 9 | << >> >>> | 左移、右移、无符号右移 | 从左到右 |
| 10 | < <= > >= in instanceof | 小于、小于等于、大于、大于等于、是否包含、实例比较 | 从左到右 |
| 11 | == != === !== | 相等、不相等、全等、不全等 | 从左到右 |
| 12 | & | 按位与 | 从左到右 |
| 13 | ^ | 按位异或 | 从左到右 |
| 14 | ` | ` | 按位或 |
| 15 | && | 逻辑与 | 从左到右 |
| 16 | ` | ` | |
| 17 | ?? | 空值合并 | 从左到右 |
| 18 | ? : | 条件(三元)运算符 | 从右到左 |
| 19 | = += -= *= /= %= | 赋值及复合赋值运算符 | 从右到左 |
<<= >>= >>>= &= ^= ` | =` | 按位操作符复合赋值 | |
| 20 | yield yield* | 生成器运算 | 从右到左 |
| 21 | , | 逗号 | 从左到右 |
括号 (()):
(2 + 3) * 4 将先计算 2 + 3。一元运算符 (+, -, !, ~):
+ 和 - 表示正数和负数。! 表示逻辑非,~ 表示按位取反。幂运算符 (**):
2 ** 3 ** 2 等同于 2 ** (3 ** 2)。加法与字符串拼接 (+):
+ 将进行字符串拼接。赋值运算符 (=):
a = b = 5 等同于 a = (b = 5)。逻辑与/或 (&&, ||) 和空值合并 (??):
&& 和 || 用于短路逻辑。?? 仅在值为 null 或 undefined 时触发。条件(三元)运算符 (? :):
x > 10 ? 'big' : 'small'。逗号运算符 (,):
本文作者:钰
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!