运算符优先级对照表
全面的编程语言运算符优先级参考工具,支持多种主流编程语言
JavaScriptGoRustPythonJavaC++C#PHP
选择编程语言
JavaScript 运算符优先级表
优先级从高到低排列,数字越小优先级越高
优先级 | 运算符 | 描述 | 结合性 |
---|---|---|---|
1 | () | 函数调用、分组 | 左结合 |
1 | [] | 数组访问 | 左结合 |
1 | . | 成员访问 | 左结合 |
1 | ?. | 可选链 | 左结合 |
1 | new | 带参数的new | 右结合 |
2 | new | 无参数的new | 右结合 |
3 | ++ -- | 后缀递增/递减 | 左结合 |
4 | ++ -- | 前缀递增/递减 | 右结合 |
4 | + - | 一元加/减 | 右结合 |
4 | ! ~ | 逻辑非/按位非 | 右结合 |
4 | typeof | 类型检测 | 右结合 |
4 | void | void运算符 | 右结合 |
4 | delete | 删除属性 | 右结合 |
4 | await | 等待异步 | 右结合 |
5 | ** | 幂运算 | 右结合 |
6 | * / % | 乘法/除法/取模 | 左结合 |
7 | + - | 加法/减法 | 左结合 |
8 | << >> >>> | 位移运算 | 左结合 |
9 | < <= > >= | 关系比较 | 左结合 |
9 | in | 属性检测 | 左结合 |
9 | instanceof | 实例检测 | 左结合 |
10 | == != === !== | 相等性比较 | 左结合 |
11 | & | 按位与 | 左结合 |
12 | ^ | 按位异或 | 左结合 |
13 | | | 按位或 | 左结合 |
14 | && | 逻辑与 | 左结合 |
15 | || | 逻辑或 | 左结合 |
15 | ?? | 空值合并 | 左结合 |
16 | ? : | 条件运算符 | 右结合 |
17 | = | 赋值 | 右结合 |
17 | += -= *= /= %= | 复合赋值 | 右结合 |
17 | <<= >>= >>>= | 位移赋值 | 右结合 |
17 | &= ^= |= | 按位赋值 | 右结合 |
17 | &&= ||= ??= | 逻辑赋值 | 右结合 |
18 | yield | 生成器yield | 右结合 |
18 | yield* | 生成器委托 | 右结合 |
19 | , | 逗号运算符 | 左结合 |
使用说明
优先级规则
- • 数字越小,优先级越高
- • 相同优先级按结合性计算
- • 使用括号可以改变计算顺序
- • 建议在复杂表达式中使用括号明确优先级
结合性说明
- • 左结合:从左到右计算
- • 右结合:从右到左计算
- • 非结合:不能连续使用
- • 大多数运算符都是左结合的