运算优先级

117 阅读1分钟
  • 如何执行
    "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/anew ···(···)
函数调用从左到右··· (···)
可选链(Optional chaining)从左到右?.
19new(无参数列表)从左到右new ···
18后置递增(运算符在后)n/a···++
后置递减(运算符在后)n/a···--
17逻辑非(!)从右到左!···
按位非(~)~···
一元正值符(+)+···
一元负值符(-)-···
前置递增++···
前置递减--···
typeoftypeof ···
voidvoid ···
deletedelete ···
awaitawait ···
16幂(**)从右到左··· ** ···
15乘法(*)从左到右··· * ···
除法(/)··· / ···
取余(%)··· % ···
14加法(+)从左到右··· + ···
减法(-)··· - ···
13按位左移(<<)从左到右··· << ···
按位右移(>>)··· >> ···
无符号右移(>>>)··· >>> ···
12小于(<)从左到右··· < ···
小于等于(<=)··· <= ···
大于(>)··· > ···
大于等于(>=)··· >= ···
in··· in ···
instanceof···
11相等(==)从左到右··· == ···
不相等(!=)··· != ···
严格相等(===)··· === ···
不严格相等(!==)··· !== ···
10按位与(&)从左到右··· & ···
9按位异或(^)从左到右··· ^ ···
8按位或(|)从左到右··· | ···
7逻辑与(&&)从左到右··· && ···
6逻辑或(||)从左到右··· || ···
5空值合并(??)从左到右··· ?? ···
4条件(三元)运算符从右到左··· ? ··· : ···
3赋值从右到左··· = ···
··· += ···
··· -= ···
··· **= ···
··· *= ···
··· /= ···
··· %= ···
··· <<= ···
··· >>= ···
··· >>>= ···
··· &= ···
··· ^= ···
··· |= ···
··· &&= ···
··· ||= ···
··· ??= ···
2yield从右到左yield ···
yield*yield* ···
1逗号从左到右··· , ···