🎃
【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
Discussion