Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

演算子の優先順位

概要

演算子の優先順位は、演算子が評価される順番を決定します。より高い優先順位の演算子は最初に評価されます。

よくある例:

3 + 4 * 5 // 23 を返す

乗算演算子 ("*") は加算演算子 ("+") より高い優先順位を持つので、最初に評価されます。

結合性

結合性は、同じ優先順位の演算子を処理する順番を決定します。例えば、次のような式を考えてみましょう。

a OP b OP c

左結合性 (左から右) とはこれを (a OP b) OP c というように処理するという意味であり、対して右結合性 (右から左) はこれを a OP (b OP c) というように解釈するという意味です。代入演算子は右結合性なので、あなたは、

a = b = 5;

と書くことで、ab が値 5 を得るという期待通りの結果を得ることができます。これは代入演算子が代入した値を返すためです。まず b に 5 がセットされます。そして a にも、代入演算子の右オペランドである b = 5 が返す 5 がセットされるのです。

以下の表は優先順位の最も高いもの (19) から最も低いもの (0) の順に並べられています。

優先順位 演算子の種類 結合性 各演算子
19 グループ化 n/a ( … )
18 メンバーへのアクセス 左から右 … . …
計算値によるメンバーへのアクセス 左から右 … [ … ]
new (引数を伴う) n/a new … ( … )
17 関数呼び出し 左から右 … ( … )
new (引数なし) 右から左 new …
16 後置インクリメント n/a … ++
後置デクリメント n/a … --
15 論理 NOT 右から左 ! …
ビットごとの NOT 右から左 ~ …
単項の + 右から左 + …
単項の - 右から左 - …
前置インクリメント 右から左 ++ …
前置デクリメント 右から左 -- …
typeof 右から左 typeof …
void 右から左 void …
delete 右から左 delete …
14 べき乗 右から左 … ** …
乗算 左から右 … * …
除算 左から右 … / …
モジュロ (剰余) 左から右 … % …
13 加算 左から右 … + …
減算 左から右 … - …
12 左ビットシフト 左から右 … << …
右ビットシフト 左から右 … >> …
符号なし右ビットシフト 左から右 … >>> …
11 より小さい 左から右 … < …
より小さいまたは等しい 左から右 … <= …
より大きい 左から右 … > …
より大きいまたは等しい 左から右 … >= …
in 左から右 … in …
instanceof 左から右 … instanceof …
10 等しい 左から右 … == …
等しくない 左から右 … != …
厳密に等しい 左から右 … === …
厳密には等しくない 左から右 … !== …
9 ビットごとの AND 左から右 … & …
8 ビットごとの XOR 左から右 … ^ …
7 ビットごとの OR 左から右 … | …
6 論理 AND 左から右 … && …
5 論理 OR 左から右 … || …
4 条件 右から左 … ? … : …
3 代入 右から左 … = …
… += …
… -= …
… **= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2 yield 右から左 yield …
yield* 右から左 yield* …
1 Spread n/a ... …
0 カンマ / シーケンス 左から右 … , …

ドキュメントのタグと貢献者

 このページの貢献者: yyss, teoli, ethertank, Potappo
 最終更新者: yyss,