主な内容の要点
演算子の優先順位と結合規則とは?
式の中で複数の演算子が使われている場合、どの順番で演算を行うかを決めるルールが「優先順位」と「結合規則」です。
- 優先順位:どの演算子を先に計算するかを決める順位。
- 結合規則:優先順位が同じ演算子が並んでいる場合、どちらを先に計算するかを決めるルール。
優先順位と結合規則の例
1. 優先順位の例
let result = 5 + 4 * 3;
console.log(result); // 出力: 17
JavaScriptこの場合、*(掛け算)の優先順位が+(足し算)より高いため、4 * 3が先に計算され、その後に5 + 12が計算されます。
2. 結合規則の例
let result = 12 / 4 * 3;
console.log(result); // 出力: 9
JavaScript/(割り算)と*(掛け算)は優先順位が同じで、結合規則は「左から右」なので、左側の/が先に計算されます。
演算子の優先順位一覧
JavaScriptの演算子は、優先順位が高い順に以下のように並んでいます。
| 優先順位 | 演算子 | 説明 |
|---|---|---|
| 21 | () | グループ化 |
| 20 | . [] () ?. | プロパティアクセス、関数呼び出し、Optional chaining |
| 19 | new | インスタンス生成 |
| 18 | ++(後置) | 後置インクリメント |
| 17 | ! ~ + - ++(前置) -- delete typeof void await | 単項演算子 |
| 16 | ** | べき乗 |
| 15 | * / % | 乗算、除算、剰余 |
| 14 | + - | 加算、減算 |
| 13 | << >> >>> | ビットシフト |
| 12 | > < >= <= instanceof in | 比較演算子 |
| 11 | == != === !== | 等価演算子 |
| 10 | & | ビットAND |
| 9 | ^ | ビットXOR |
| 8 | ` | ` |
| 7 | && | 論理AND |
| 6 | ` | |
| 5 | ?? | Null合体演算子 |
| 4 | ? : | 三項演算子 |
| 3 | = += -= *= /= %= <<= >>= >>>= &= ` | =^=&&= |
| 2 | yield yield* | ジェネレーター |
| 1 | , | カンマ演算子 |
括弧を使って優先順位を変更する
式の中で特定の演算を優先させたい場合、括弧()を使って明示的に順序を指定できます。
let result = (10 + 5) * 4;
console.log(result); // 出力: 60
JavaScriptこのように、括弧内の計算が最優先で行われます。
初心者へのアドバイス
- 基本は「掛け算・割り算が足し算・引き算より先」と覚えればOK。
- 迷ったら 括弧で明示的に順序を指定 すると安全。
- 複雑な式は分けて書くと読みやすくなる。
まとめ
- 演算子の優先順位と結合規則を理解することで、意図した通りの計算結果を得ることができます。
- 複雑な式では、括弧を使って計算順序を明示的に指定することをおすすめします。
- 演算子の優先順位は言語仕様に基づいて決まっているため、基本的なルールを覚えておくと便利です。

