运算符优先级对照表

全面的编程语言运算符优先级参考工具,支持多种主流编程语言

JavaScriptGoRustPythonJavaC++C#PHP

选择编程语言

JavaScript 运算符优先级表

优先级从高到低排列,数字越小优先级越高

优先级 运算符 描述 结合性
1()函数调用、分组左结合
1[]数组访问左结合
1.成员访问左结合
1?.可选链左结合
1new带参数的new右结合
2new无参数的new右结合
3++ --后缀递增/递减左结合
4++ --前缀递增/递减右结合
4+ -一元加/减右结合
4! ~逻辑非/按位非右结合
4typeof类型检测右结合
4voidvoid运算符右结合
4delete删除属性右结合
4await等待异步右结合
5**幂运算右结合
6* / %乘法/除法/取模左结合
7+ -加法/减法左结合
8<< >> >>>位移运算左结合
9< <= > >=关系比较左结合
9in属性检测左结合
9instanceof实例检测左结合
10== != === !==相等性比较左结合
11&按位与左结合
12^按位异或左结合
13|按位或左结合
14&&逻辑与左结合
15||逻辑或左结合
15??空值合并左结合
16? :条件运算符右结合
17=赋值右结合
17+= -= *= /= %=复合赋值右结合
17<<= >>= >>>=位移赋值右结合
17&= ^= |=按位赋值右结合
17&&= ||= ??=逻辑赋值右结合
18yield生成器yield右结合
18yield*生成器委托右结合
19,逗号运算符左结合

使用说明

优先级规则

  • • 数字越小,优先级越高
  • • 相同优先级按结合性计算
  • • 使用括号可以改变计算顺序
  • • 建议在复杂表达式中使用括号明确优先级

结合性说明

  • 左结合:从左到右计算
  • 右结合:从右到左计算
  • 非结合:不能连续使用
  • • 大多数运算符都是左结合的