論理演算子の優先順位とは
プログラムでは複数の演算子を組み合わせて条件を書くことがよくあります。そのとき「どの演算子を先に計算するか」を決めるルールが 優先順位 です。算数で「掛け算が足し算より先に計算される」のと同じように、論理演算子にも順番があります。
基本の順番
JavaScript の論理演算子には以下の優先順位があります。
- NOT(!) が最も優先される
- AND(&&) が次に評価される
- OR(||) が最後に評価される
つまり、同じ式に ! と && と || が混ざっているときは、まず ! が処理され、その後 &&、最後に || が計算されます。
例題で確認する
NOT が最初に計算される
console.log(!true || false);
// !true → false
// false || false → false
JavaScriptAND が OR より先に計算される
console.log(true || false && false);
// false && false → false
// true || false → true
JavaScriptここで「OR が先」と思ってしまうと誤解が生じます。実際は AND が先なので結果は true になります。
括弧で優先順位を変える
算数と同じように、括弧 () を使うと計算の順番を変えられます。複雑な条件式では括弧を使うことで「意図どおりの順番」にできますし、読みやすさも向上します。
console.log((true || false) && false);
// true || false → true
// true && false → false
JavaScript括弧をつけない場合と結果が変わることがあるので、複雑な条件では必ず括弧を使うのが安全です。
実用例
範囲チェックと特別条件
例えば「点数が60点以上かつ会員、または管理者なら合格」という条件を考えます。
const score = 55;
const isMember = true;
const isAdmin = true;
const result = (score >= 60 && isMember) || isAdmin;
console.log(result); // true(管理者なので合格)
JavaScriptここでは (score >= 60 && isMember) が先に計算され、その結果と isAdmin を OR で結合しています。括弧をつけることで意図が明確になります。
まとめ
- 論理演算子の優先順位は ! → && → || の順。
- NOT が最優先、次に AND、最後に OR。
- 複雑な条件式では括弧を使うことで「意図どおりの順番」にでき、読みやすさも向上する。
初心者は「! が一番強い」「AND が OR より強い」と覚えておき、迷ったら括弧で明示するのがコツです。
