🎃

【JavaScript】Falsyとは何か

に公開

目的

  • Falsy について知ること

きっかけ

JavaScript の filter 関数を使った実装をした時に、Falsyという概念に出会い、何か分からなかったため、調べたことを1記事としてまとめています。

JavaScriptの 真値/偽値(Truthy / Falsy)

JavaScript では、ブール値(true または false)以外の値でも、論理的な文脈(if の条件式など)で使用されると、自動的に true または false のいずれかに変換されて評価される際に用いられます。

Trusy/Falsyとは、「ブーリアン型のtrue または falseではないけれども、ブーリアンとして評価される文脈ではfalseと見なされる(Falseチックな)値のことと言えそうです。

JavaScript は条件文や繰り返しなどの場面で、任意の値を強制的に論理型に型変換します。
https://developer.mozilla.org/ja/docs/Glossary/Falsy より引用

Falsy(false と評価される値)

以下、https://developer.mozilla.org/ja/docs/Glossary/Falsy より引用し編集

説明
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

Truthy(true と評価される値)

偽値 (falsy) として定義された値 (つまり、false, 0, -0, 0n, "", null, undefined, NaN) を除くすべての値は真値です。
https://developer.mozilla.org/ja/docs/Glossary/Falsy より引用

上記以外のすべての値(例: "hello", 1, {} (空オブジェクト), [] (空配列) など)

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

参考URL

https://developer.mozilla.org/ja/docs/Glossary/Truthy

https://developer.mozilla.org/ja/docs/Glossary/Falsy

Discussion