JavaScript「式と演算子」要点まとめ
全体の要点
| 概念 | 説明 |
|---|---|
| 式 (expression) | 評価されると「値」になるコード。例:3 + 4, x = 10, a > b ? a : b |
| 演算子 (operator) | 値を操作・組み合わせるための記号やキーワード。例:+, =, >, && など |
| 目的 | 値を作る・比較する・代入する・条件分岐するなど、あらゆる操作の基礎 |
主な演算子の分類と使い方
| 分類 | 主な演算子 | 例 | 説明 |
|---|---|---|---|
| 代入演算子 | =, +=, -=, *=, /=, %= | x += 3 | 右の値を左に代入(計算しながら代入も可能) |
| 比較演算子 | ==, !=, ===, !==, >, <, >=, <= | x === 3 | 値や型を比較して true / false を返す |
| 算術演算子 | +, -, *, /, %, **, ++, -- | 2 ** 3 | 数値の計算・インクリメントなど |
| 論理演算子 | &&, ` | , !, ??` | |
| ビット演算子 | &, ` | , ^, ~, <<, >>, >>>` | 5 & 3 |
| 条件(三項)演算子 | 条件 ? 値1 : 値2 | age >= 18 ? "大人" : "子供" | if文の短縮版 |
| カンマ演算子 | , | (a=1, b=2, a+b) | 複数の式を順に評価して最後の結果を返す |
| 単項演算子 | delete, typeof, void, +, - | typeof x | オペランド1つを操作 |
評価のルール
| ルール | 内容 |
|---|---|
| 優先順位 | * や / は + より先に評価されるなど、演算子ごとに順序がある |
| 結合規則 | 同じ優先順位なら、左から or 右から評価(例:代入演算子は右結合) |
括弧 () | 順序を明示したいときに使う。最も優先される |
実用ポイント
==より===を使う(型変換によるバグ防止)||と??の違いを理解する(||は 0 や空文字も false 扱い)- 条件演算子で if 文を簡潔に書ける
- 複雑な式は 括弧で明示的に整理
- 代入や論理演算も「式」なので、値を返すことを意識する
JavaScript 演算子の優先順位 一覧表(初心者向け)
| 優先順位(高い順) | 演算子 | 種類 | 結合方向 | 例 |
|---|---|---|---|---|
| 20 | () | グループ化 | 左から右 | (a + b) * c |
| 19 | . [] ?. | メンバーアクセス / オプショナルチェーン | 左から右 | obj.key, arr[0], obj?.prop |
| 18 | new(引数あり) | インスタンス生成 | 右から左 | new Date() |
| 17 | ()(関数呼び出し) | 関数呼び出し | 左から右 | myFunc(x) |
| 16 | ++ --(後置) | インクリメント/デクリメント | 左から右 | x++, y-- |
| 15 | ! ~ + - typeof void delete await ++ --(前置) | 単項演算子 | 右から左 | !a, typeof b, ++x |
| 14 | ** | べき乗 | 右から左 | 2 ** 3 ** 2 → 2 ** (3 ** 2) |
| 13 | * / % | 算術演算 | 左から右 | a * b / c |
| 12 | + - | 加減算 | 左から右 | a + b - c |
| 11 | << >> >>> | シフト演算 | 左から右 | x << 2 |
| 10 | < <= > >= in instanceof | 比較演算 | 左から右 | a < b, key in obj |
| 9 | == != === !== | 等価・不等価 | 左から右 | a === b |
| 8 | & | ビット AND | 左から右 | a & b |
| 7 | ^ | ビット XOR | 左から右 | a ^ b |
| 6 | ` | ` | ビット OR | 左から右 |
| 5 | && | 論理 AND(短絡評価) | 左から右 | a && b |
| 4 | ` | ??` | 論理 OR / null合体演算 | |
| 3 | ? : | 条件(三項)演算子 | 右から左 | a > 0 ? 1 : -1 |
| 2 | = += -= *= /= %= **= &= ` | = ^= <<= >>= >>>= &&= | = ??=` | |
| 1 | , | カンマ演算子 | 左から右 | (a = 1, b = 2) |
覚え方のコツ
- 「数式に近いものほど優先順位が高い」
→* / %は+ -より先、()は最優先 - 「代入や条件は最後に評価される」
→=や? :は一番後ろの方 - 「右結合」を覚えておく代表例
→=、**、? :は 右から評価
まとめ一行
式は「値を生み出すもの」、
演算子は「値をどう扱うかを決める道具」。
