[JS] 演算子の優先順位のまとめ

記事ディレクトリ

  1. OP1 と OP2 の優先順位が異なる場合 (以下の表を参照)、結合性に関係なく、最も優先順位の高い演算子が最初に実行されます。
console.log(3 + 10 * 2); // 输出 23
console.log((3 + 10) * 2); // 输出 26 因为括号改变了优先级
  1. OP1 と OP2 の優先順位が同じ場合、結合性が考慮されます。
    • 左結合 (左から右) は、左の部分式 (a OP b) OP c に括弧を追加することと同じです。
    • 右結合 (右から左) は OP (b OP c) と同等です。
// 赋值运算符是右结合的:
a = b = 5; // 相当于 a = (b = 5);
  • 以下の表では、すべての演算子を優先順位の最高 (19) から最低 (1) までランク付けしています。
優先度 演算子の種類 組み合わせ オペレーター
19 グループ 該当なし (関係ありません) ()
同上 メンバーアクセス 左から右へ .
同上 計算されたメンバーのアクセス 同上 ...
同上 関数呼び出し 同上 fun()
同上 オプションのチェーニング 同上 ?.
同上 new (パラメータリスト付き) 該当なし new
17 new (引数リストなし) 右から左へ new
16 ポストインクリメント 該当なし ++
同上 ポストデクリメント 同上 --
15 論理否定(!) 右から左へ !
同上 ビット単位の NOT (~) 同上 ~
同上 単項加算 (+) 同上 +
同上 単項減算 (-) 同上 -
同上 事前インクリメント 同上 ++
同上 プリデクリメント 同上 --
同上 の種類 同上 typeof
同上 空所 同上 void
同上 消去 同上 delete
同上 待つ 同上 await
14 力(**) 右から左へ **
13 乗算(*) 左から右へ *
同上 分割(/) 同上 /
同上 余剰(%) 同上 %
12 加算(+) 左から右へ +
同上 減算(-) 同上 -
11 ビット単位の左シフト (<<) 左から右へ <<
同上 ビット単位の右シフト (>>) 同上 >>
同上 符号なし右シフト (>>>) 同上 >>>
10 未満 (<) 左から右へ <
同上 以下 (<=) 同上 <=
同上 より大きい (>) 同上 >
同上 以上 (>=) 同上 >=
同上 同上 in
同上 …のインスタンス 同上 instanceof
9 等しい (==) 左から右へ ==
同上 等しくない (!=) 同上 !=
同上 一貫性のある/厳密な等価性 (===) 同上 ===
同上 一貫性がない/厳密には等しくない (!==) 同上 !==
8 ビット単位の AND (&) 左から右へ &
7 ビットごとの XOR (^) 左から右へ ^
6 ビット単位または (|) 左から右へ |
5 論理積 (&&) 左から右へ &&
4 論理和 (||) 左から右へ ||
同上 ヌル合体(??) 左から右へ ??
3 条件付き (三項) 演算子 右から左へ ? … :
2 割り当て 右から左へ =
同上 同上 同上 +=
同上 同上 同上 -=
同上 同上 同上 **=
同上 同上 同上 *=
同上 同上 同上 /=
同上 同上 同上 %=
同上 同上 同上 <<=
同上 同上 同上 >>=
同上 同上 同上 >>>=
同上 同上 同上 &=
同上 同上 同上 ^=
同上 同上 同上 |=
同上 同上 同上 &&=
同上 同上 同上 ||=.
同上 同上 同上 ??=
1 カンマ/シーケンス 左から右へ ,

おすすめ

転載: blog.csdn.net/qq_45677671/article/details/132067066