【JavaScript】TruthyとFalsy・論理積(AND)と論理和(OR)の挙動について解説します
2023年3月3日
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
の場合、右辺は評価されずにスキップされます。
例えば、以下のコードでは、a
とb
が両方ともtrue
であるため、b
が返されます。
const a = true;
const b = 'hello';
const result = a && b;
console.log(result); // 'hello'
両方Truthyの値の場合は、右辺を評価して、右辺の結果を返すことになります。
また、以下のコードでは、a
がfalse
であるため、a
が返されます。右辺のb
は評価されずにスキップされます。
const a = false;
const b = 'hello';
const result = a && b;
console.log(result); // false
論理積では、Faltyな値を見つけた場合、すぐに値を返すこととなります。
論理和(OR)
論理和(OR)は、以下のような挙動となります。
- 左辺が
true
ならば、左辺を返します。 - 左辺が
false
ならば、右辺を評価して、右辺の結果を返します。 - 左辺が
true
の場合、右辺は評価されずにスキップされます。
例えば、以下のコードでは、a
とb
が両方ともtrue
であるため、a
が返されます。
const a = true;
const b = 'hello';
const result = a || b;
console.log(result); // true
右辺のb
は評価されずにスキップされます。
また、以下のコードでは、a
とb
のどちらも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)の挙動についての解説です。
最後まで読んでいただきありがとうございました。