JavaScriptの演算子の優先順位

優先度文法
21( ___ )グループ化
20___ . ___プロパティへのアクセス
___ ?. ___オプショナルチェイニング
___ [ __ ]プロパティや配列へのアクセス
___ ( ___ )関数呼び出し
new ___ ( ___ )インスタンス生成
19new ___引数無しインスタンス生成
18___ ++後置インクリメント
___ --後置デクリメント
17! ___論理NOT
~ ___ビットNOT
+ ___単項+
- ___単項-
++ ___前置インクリメント
-- ___前置デクリメント
typeof ___typeof
void ___void
delete ___delete
await ___await
16___ ** ___べき乗
15___ * ___乗算
___ / ___除算
___ % ___剰余
14___ + ___加算
___ - ___減算
13___ << ___ビットシフト
___ >> ___
___ >>> ___符号無しビットシフト
12___ < ___不等号
___ < ___
___ <= ___
___ > ___
___ >= ___
___ in ___プロパティ存在チェック
___ instanceof ___instanceof
11___ === ___等号
___ == ___
___ !== ___不等号
___ != ___
10___ & ___ビットAND
9___ ^ ___ビットXOR
8___ | ___ビットOR
7___ && ___論理AND
6___ || ___論理OR
5___ ?? ___Null合体
4___ ? ___ : ___三項条件
3___ = ___代入
___ += ___計算代入
___ -= ___
___ **= ___
___ *= ___
___ /= ___
___ %= ___
___ <<= ___
___ >>= ___
___ >>>= ___
___ &= ___
___ ^= ___
___ |= ___
___ &&= ___
___ ||= ___
2yield ___yield
yield* ___yield*
1___ , ___複数式のためのコンマ

ポイント

  • 以下は演算子ではありません
    • アロー関数で使う=>
    • スプレッド構文と残余引数でつかう...
    • ループでのofin
    • with
  • インクリメントとデクリメントは、前置と後置とでは挙動も優先順位も異なります