相关信息
在 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 许可协议。转载请注明出处!