- 如何执行
"object" == typeof exports && "undefined" != typeof module ? module.exports = n() : "function" == typeof define && define.amd ? define(n) : t.jybd = n()
| 优先级 | 运算类型 | 关联性 | 运算符 |
|---|---|---|---|
| 21 | 分组 | n/a(不相关) | (···) |
| 20 | 成员访问 | 从左到右 | ··· . ··· |
| 需要计算的成员访问 | 从左到右 | ···[···] | |
| new(带参数列表) | n/a | new ···(···) | |
| 函数调用 | 从左到右 | ··· (···) | |
| 可选链(Optional chaining) | 从左到右 | ?. | |
| 19 | new(无参数列表) | 从左到右 | new ··· |
| 18 | 后置递增(运算符在后) | n/a | ···++ |
| 后置递减(运算符在后) | n/a | ···-- | |
| 17 | 逻辑非(!) | 从右到左 | !··· |
| 按位非(~) | ~··· | ||
| 一元正值符(+) | +··· | ||
| 一元负值符(-) | -··· | ||
| 前置递增 | ++··· | ||
| 前置递减 | --··· | ||
| typeof | typeof ··· | ||
| void | void ··· | ||
| delete | delete ··· | ||
| await | await ··· | ||
| 16 | 幂(**) | 从右到左 | ··· ** ··· |
| 15 | 乘法(*) | 从左到右 | ··· * ··· |
| 除法(/) | ··· / ··· | ||
| 取余(%) | ··· % ··· | ||
| 14 | 加法(+) | 从左到右 | ··· + ··· |
| 减法(-) | ··· - ··· | ||
| 13 | 按位左移(<<) | 从左到右 | ··· << ··· |
| 按位右移(>>) | ··· >> ··· | ||
| 无符号右移(>>>) | ··· >>> ··· | ||
| 12 | 小于(<) | 从左到右 | ··· < ··· |
| 小于等于(<=) | ··· <= ··· | ||
| 大于(>) | ··· > ··· | ||
| 大于等于(>=) | ··· >= ··· | ||
| in | ··· in ··· | ||
| instanceof | ··· | ||
| 11 | 相等(==) | 从左到右 | ··· == ··· |
| 不相等(!=) | ··· != ··· | ||
| 严格相等(===) | ··· === ··· | ||
| 不严格相等(!==) | ··· !== ··· | ||
| 10 | 按位与(&) | 从左到右 | ··· & ··· |
| 9 | 按位异或(^) | 从左到右 | ··· ^ ··· |
| 8 | 按位或(|) | 从左到右 | ··· | ··· |
| 7 | 逻辑与(&&) | 从左到右 | ··· && ··· |
| 6 | 逻辑或(||) | 从左到右 | ··· || ··· |
| 5 | 空值合并(??) | 从左到右 | ··· ?? ··· |
| 4 | 条件(三元)运算符 | 从右到左 | ··· ? ··· : ··· |
| 3 | 赋值 | 从右到左 | ··· = ··· |
| ··· += ··· | |||
| ··· -= ··· | |||
| ··· **= ··· | |||
| ··· *= ··· | |||
| ··· /= ··· | |||
| ··· %= ··· | |||
| ··· <<= ··· | |||
| ··· >>= ··· | |||
| ··· >>>= ··· | |||
| ··· &= ··· | |||
| ··· ^= ··· | |||
| ··· |= ··· | |||
| ··· &&= ··· | |||
| ··· ||= ··· | |||
| ··· ??= ··· | |||
| 2 | yield | 从右到左 | yield ··· |
| yield* | yield* ··· | ||
| 1 | 逗号 | 从左到右 | ··· , ··· |