JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

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合体演算子)を使えば、nullundefined の場合にだけ代替値を設定できるため、意図が明確なコードを書けます。ただし ??|| を併用する場合は、優先順位の関係で括弧が必要になる点に注意してください。

まとめ

演算子名称動作
&&論理積(AND)両方の式が true なら true を返す
||論理和(OR)どちらか一方が true なら true を返す
!否定(NOT)真偽値を反転させる

論理演算子はif文などの条件分岐で頻繁に使われる基本的な要素です。短絡評価の挙動もあわせて理解しておくと、より安全で読みやすいコードが書けるようになります。

  1. JavaScriptのPromiseとは?非同期処理の基本をわかりやすく解説

    JavaScriptのPromiseとは?Promise(プロミス)は、JavaScriptで非同期処理を扱うためのオブジェクトです。Promiseが生成された時点では、最終的な結果の値はまだ確定していません。処理が完了した将来のタイミングで、成功または失敗の結果を受け取ることができます。これにより、APIからのデータ取得やファイル読み込みなど、時間のかかる処理を効率的に記述できます。Promiseの3つの状態Promiseは、必ず以下の3つの状態のいずれかを持ちます。pending(待機):初期状態。処理がまだ完了していない状態です。fulfilled(履行):処理が正常に完了し、結果の値が

  2. Pythonのビット演算子の種類と使い方をわかりやすく解説

    ビット演算子(Bitwise Operators)とは、数値を2進数のビット単位で操作するための演算子です。Pythonでは、以下の6種類のビット演算子が定義されています。 Pythonで使えるビット演算子の一覧 &(ビット単位AND):両方のビットが1の場合のみ1を返します |(ビット単位OR):どちらか一方でも1であれば1を返します ^(ビット単位XOR・排他的論理和):片方のビットだけが1の場合に1を返します ~(ビット反転・補数):ビットが0なら1へ、1なら0へ反転します <<(左シフト):ビットを左へシフトし、右側の空いたビットは0で埋められます >>