Falsy (偽値)
偽値 (falsy または falsey) な値とは、論理型コンテキストに現れたときに偽とみなされる値です。
JavaScript は条件文や繰り返しなどの場面で、任意の値を強制的に論理型に型変換します。
以下の表は、 JavaScript の偽値の完全なリストです。
| 値 | 型 | 説明 | 
|---|---|---|
| null | null | キーワード null — 値が存在しないことを示します。 | 
| undefined | undefined | undefined — プリミティブ値。 | 
false | 
論理値型 | キーワード false。 | 
| NaN | 数値型 | NaN — 数値ではない。 | 
0 | 
数値型 | 数値ゼロ (従って、 0.0 や 0x0 なども含みます)。 | 
-0 | 
数値型 | 数値マイナスゼロ(従って、 -0.0 や -0x0 等も含みます)。 | 
0n | 
長整数型 | 長整数型のゼロ(従って、 0x0n も含みます)。なお、長整数型にはマイナスゼロはありません。 0n の負の数は 0n です。 | 
"" | 
文字列型 | 空文字列値。'' や `` も含みます。 | 
document.all | 
オブジェクト | JavaScript で唯一の偽値のオブジェクトは、組み込みの document.all です。 | 
null および undefined はヌル値でもあります。
例
JavaScript の 偽値 の例です(これは論理値のコンテキストでは偽に変換されるため、 if ブロックを実行しません)。
js
if (false) {
  // 到達しない
}
if (null) {
  // 到達しない
}
if (undefined) {
  // 到達しない
}
if (0) {
  // 到達しない
}
if (-0) {
  // 到達しない
}
if (0n) {
  // 到達しない
}
if (NaN) {
  // 到達しない
}
if ("") {
  // 到達しない
}
論理 AND 演算子 &&
最初のオブジェクトが偽値の場合は、そのオブジェクトを返します。
js
console.log(false && "dog");
// ↪ false
console.log(0 && "dog");
// ↪ 0