Falsy (偽値)

偽値 (falsy または falsey) な値とは、論理型コンテキストに現れたときに偽とみなされる値です。

JavaScript条件文繰り返しなどの場面で、任意の値を強制的に論理型に型変換します。

以下の表は、 JavaScript の偽値の完全なリストです。

説明
false キーワード false
0 数値ゼロ (従って、 0.00x0 なども含みます)。
-0 数値マイナスゼロ(従って、 -0.0-0x0 等も含みます)。
0n 長整数型のゼロ(従って、 0x0n も含みます)。なお、長整数型にはマイナスゼロはありません。 0n の負の数は 0n です。
"", '', `` 文字列値。
null null — 値が存在しないことを示します。
undefined undefined — プリミティブ値。
NaN NaN — 数値ではない。
document.all オブジェクトは [[IsHTMLDDA]] 内部スロットを保有している場合のみ、偽値になります。このスロットは document.all にのみ存在し、JavaScript で設定することはできません。

JavaScript の 偽値 の例です(これは論理値のコンテキストでは偽に変換されるため、 if ブロックを実行しません)。

if (false) {
  // 到達しない
}

if (null) {
  // 到達しない
}

if (undefined) {
  // 到達しない
}

if (0) {
  // 到達しない
}

if (-0) {
  // 到達しない
}

if (0n) {
  // 到達しない
}

if (NaN) {
  // 到達しない
}

if ("") {
  // 到達しない
}

論理 AND 演算子 &&

最初のオブジェクトが偽値の場合は、そのオブジェクトを返します。

console.log(false && "dog");
// ↪ false

console.log(0 && "dog");
// ↪ 0

関連情報