← Back

【JavaScript】TruthyとFalsy・論理積(AND)と論理和(OR)の挙動について解説します

2023年3月3日eyecatch

JavaScriptには、真偽値(Truthy/Falsy)という概念があります。

これは、条件式の評価時に自動的にtrue/falseに評価される値を指します。

一方、論理積(AND)と論理和(OR)は、論理演算子を使って複数の条件を評価するために使われます。

この記事では、JavaScriptのTruthy/Falsyと論理積(AND)・論理和(OR)の挙動について解説します。

TruthyとFalsy

JavaScriptでは、以下の6つの値はFalsyとして扱われます。

  • false
  • null
  • undefined
  • 0
  • NaN
  • 空文字


上記以外の値はTruthyと判断されます。

例として以下のコードで確認してみます。

if ('') {
  console.log('この行は実行されません');
}

if ('hello') {
  console.log('この行は実行されます');
}

上記のコードは、最初のif文の条件がFalsyであるため、実行されません。

一方、2つ目のif文の条件がTruthyであるため、実行されます。

このように条件式の中でTruthy/Falsyな値を使用することができます。

Falsyな値を使ったデフォルト値の設定

Falsyを利用して、デフォルト値を設定することもできます。

function greet(name) {
  name = name || 'Stranger';

  console.log(`Hello, ${name}!`);
}

greet();      // "Hello, Stranger!"
greet('John'); // "Hello, John!"

上記のコードは、nameがFalsyである場合、代わりに'Stranger'というデフォルト値を設定しています。

nameに値がある場合は、その値が使用されます。

論理積(AND)と論理和(OR)

次に論理積(AND)と論理和(OR)について解説します。

論理積(AND)と論理和(OR)は複数の条件を組み合わせて評価するために用いられます。

論理積(AND)

論理積(AND)は、以下のような挙動となります。

  • 左辺がfalseならば、左辺を返します。
  • 左辺がtrueならば、右辺を評価して、右辺の結果を返します。
  • 左辺がfalseの場合、右辺は評価されずにスキップされます。


例えば、以下のコードでは、abが両方ともtrueであるため、bが返されます。

const a = true;
const b = 'hello';

const result = a && b;
console.log(result); // 'hello'

両方Truthyの値の場合は、右辺を評価して、右辺の結果を返すことになります。

また、以下のコードでは、afalseであるため、aが返されます。右辺のbは評価されずにスキップされます。

const a = false;
const b = 'hello';

const result = a && b;
console.log(result); // false

論理積では、Faltyな値を見つけた場合、すぐに値を返すこととなります。

論理和(OR)

論理和(OR)は、以下のような挙動となります。

  • 左辺がtrueならば、左辺を返します。
  • 左辺がfalseならば、右辺を評価して、右辺の結果を返します。
  • 左辺がtrueの場合、右辺は評価されずにスキップされます。


例えば、以下のコードでは、abが両方ともtrueであるため、aが返されます。

const a = true;
const b = 'hello';

const result = a || b;
console.log(result); // true

右辺のbは評価されずにスキップされます。

また、以下のコードでは、abのどちらもfalseであるため、bが返されます。

const a = false;
const b = 0;

const result = a || b;
console.log(result); // 0

両方Falthyの値の場合は、右辺を評価して、右辺の結果を返すことになります。

まとめ

本記事では、Truthy/Falsyと論理演算子について解説しました。

Truthy/Falsyは、条件式が値をTrue/Falseに変換する際に用いられ、Falsyとして扱われる値には、false, 0, "", null, undefined, NaNがあります。

論理積(AND)と論理和(OR)の挙動は分からなくなる時がありますが、簡単にまとめると以下のようになります。

  • 論理積(AND)は、Faltyな値が見つかった時点ですぐに値を返し、見つからない場合は右側の値を返す。
  • 論理和(OR)は、Truthyな値が見つかった時点ですぐに値を返し、見つからない場合は右側の値を返す。


以上が、JavaScriptのTruthy/Falsyと論理積(AND)と論理和(OR)の挙動についての解説です。

最後まで読んでいただきありがとうございました。

この記事の目次
フロントエンドRPGについて

当ブログは、Web開発に役立つ情報を日々の学びをもとに発信しています。
サイト制作やブログのカスタマイズについて承ります。
お気軽にご連絡・ご相談ください。

©2024 フロントエンドRPG Created by KOBI 23プライバシーポリシー