JavaScriptの論理演算子の種類を解説!&&・||・! の違いと使い方
JavaScriptの論理演算子とは
論理演算子は、複数の条件を組み合わせたり、真偽値(Boolean)を反転させたりするために使われる演算子です。JavaScriptには主に次の3種類の論理演算子があります。
- &&(AND:論理積)
- ||(OR:論理和)
- !(NOT:否定)
AND演算子(&&)
AND演算子(&&)は、左右の両方の式が true の場合にのみ true を返し、どちらか一方でも false であれば false を返します。
サンプルコード
<html>
<body>
<p id="and"></p>
<script>
var a = 200;
var b = 300;
document.getElementById("and").innerHTML =
(a > 100 && b < 500) + "<br>" +
(a < 100 && b < 50);
</script>
</body>
</html>
実行結果
true false
この例では、a > 100 && b < 500 は両方の条件が成立するため true、一方 a < 100 && b < 50 はどちらも成立しないため false となります。
OR演算子(||)
OR演算子(||)は、左右のどちらか一方、または両方の式が true であれば true を返し、両方とも false の場合にのみ false を返します。
サンプルコード
<html>
<body>
<p id="or"></p>
<script>
var x = 200;
var y = 300;
document.getElementById("or").innerHTML =
(x == 200 || y == 300) + "<br>" +
(x == 200 || y == 0) + "<br>" +
(x == 0 || y == 0)
</script>
</body>
</html>
実行結果
true true false
最初の2つの式は少なくとも1つの条件が成立しているため true となり、最後の式は両方の条件が不成立のため false となります。
NOT演算子(!)
NOT演算子(!)は単一のオペランドに対して作用し、true を false へ、false を true へと反転させます。
サンプルコード
<html>
<body>
<p id="not"></p>
<script>
var x = 200;
var y = 300;
document.getElementById("not").innerHTML =
!(x < y) + "<br>" + !(x > y);
</script>
</body>
</html>
実行結果
false true
x < y は true なので !(x < y) は false、逆に x > y は false なので !(x > y) は true になります。
補足:短絡評価(ショートサーキット)を活用しよう
JavaScriptの && と || には「短絡評価」という重要な特徴があります。&& は左側が false と判定された時点で右側を評価せず、|| は左側が true と判定された時点で右側を評価しません。この性質を利用すると、条件分岐やデフォルト値の設定を簡潔に書けます。
// || を使ったデフォルト値の設定 var name = inputValue || "ゲスト"; // && を使った安全な処理の実行 isLoggedIn && showDashboard();
また、ES2020で導入された ??(Null合体演算子)を使えば、null や undefined の場合にだけ代替値を設定できるため、意図が明確なコードを書けます。ただし ?? と || を併用する場合は、優先順位の関係で括弧が必要になる点に注意してください。
まとめ
| 演算子 | 名称 | 動作 |
|---|---|---|
&& | 論理積(AND) | 両方の式が true なら true を返す |
|| | 論理和(OR) | どちらか一方が true なら true を返す |
! | 否定(NOT) | 真偽値を反転させる |
論理演算子はif文などの条件分岐で頻繁に使われる基本的な要素です。短絡評価の挙動もあわせて理解しておくと、より安全で読みやすいコードが書けるようになります。
-
JavaScriptのPromiseとは?非同期処理の基本をわかりやすく解説
JavaScriptのPromiseとは?Promise(プロミス)は、JavaScriptで非同期処理を扱うためのオブジェクトです。Promiseが生成された時点では、最終的な結果の値はまだ確定していません。処理が完了した将来のタイミングで、成功または失敗の結果を受け取ることができます。これにより、APIからのデータ取得やファイル読み込みなど、時間のかかる処理を効率的に記述できます。Promiseの3つの状態Promiseは、必ず以下の3つの状態のいずれかを持ちます。pending(待機):初期状態。処理がまだ完了していない状態です。fulfilled(履行):処理が正常に完了し、結果の値が
-
Pythonのビット演算子の種類と使い方をわかりやすく解説
ビット演算子(Bitwise Operators)とは、数値を2進数のビット単位で操作するための演算子です。Pythonでは、以下の6種類のビット演算子が定義されています。 Pythonで使えるビット演算子の一覧 &(ビット単位AND):両方のビットが1の場合のみ1を返します |(ビット単位OR):どちらか一方でも1であれば1を返します ^(ビット単位XOR・排他的論理和):片方のビットだけが1の場合に1を返します ~(ビット反転・補数):ビットが0なら1へ、1なら0へ反転します <<(左シフト):ビットを左へシフトし、右側の空いたビットは0で埋められます >>