JavaScriptの&&の意味は?

 

JavaScriptにおける&&の意味

論理積演算子 (&&)

JavaScriptにおいて、&&論理積演算子 と呼ばれ、論理結合 を行うために使用されます。この演算子は2つのオペランドに対して使用され、両方のオペランドが真 (true) の場合にのみ true を返します。それ以外の場合は false を返します。この動作により、複数の条件がすべて満たされる必要がある場合に便利です。

論理積演算子の動作

  • 両方のオペランドが true の場合: true を返します。
  • いずれかのオペランドが false の場合: false を返します。
  • 両方のオペランドが false の場合: false を返します。

&& の使い方

&& 演算子は、以下のように条件式の中で使用されます。


const condition1 = true;
const condition2 = false;

if (condition1 && condition2) {
  // condition1 と condition2 が両方とも true の場合に実行される
} else {
  // それ以外の場合に実行される
}
    

上記の例では、condition2false のため、if 文の中身は実行されません。

短絡評価

&& 演算子は 短絡評価 を行います。つまり、左側のオペランドが false と評価された時点で、右側のオペランドは評価されません。これは、右側のオペランドの評価に時間がかかる場合や、副作用がある場合に便利です。

&& の使用例

例1: 複数の条件の確認


const age = 25;
const hasLicense = true;

if (age >= 18 && hasLicense) {
  // 18歳以上で免許を持っている場合に実行される
}
    

例2: 関数からの戻り値の確認


function validateInput(input) {
  if (input && input.length > 0) {
    // 入力が存在し、長さが0より大きい場合に true を返す
    return true;
  } else {
    return false;
  }
}
    

例3: デフォルト値の設定


const name = user.name || "ゲスト";
    

上記の例では、user.nameundefined や空文字列の場合、name 変数には "ゲスト" が代入されます。

真偽値表

オペランド1 オペランド2 結果
true true true
true false false
false true false
false false false

HTML コード例

<!DOCTYPE html>
<html>
<head>
  <title>&& 演算子の例</title>
</head>
<body>
  <script>
    const age = 25;
    const hasLicense = true;

    if (age >= 18 && hasLicense) {
      console.log("運転できます。");
    } else {
      console.log("運転できません。");
    }
  </script>
</body>
</html>

参考資料

Q&A

Q1: && と & の違いは何ですか?

&& は論理積演算子、& はビット演算子です。論理積演算子は真偽値を扱い、ビット演算子はビット単位で演算を行います。

Q2: && はどのように短絡評価されますか?

左側のオペランドが false と評価された時点で、右側のオペランドは評価されません。

Q3: && 演算子の代わりに || 演算子を使用できますか?

|| 演算子は論理和演算子であり、どちらかのオペランドが true の場合に true を返します。&& 演算子とは異なる動作をするため、置き換えることはできません。

その他の参考記事:JavaScript 演算子