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