falsyな値とは
falsyな値というのはBooleanで真偽値に変換した場合にfalseになる値のこと。
どゆこと、、、?
まずは、Booleanってなに?
Booleanは真偽値に変換するもの
例えば、
let a = 0;
console.log(Boolean(a));
結果としてコンソールにはfalseと表示される
どういう事かというと、今回の場合、0というのは、Booleanによって真偽値に変換した時falseと等価になることがわかる。
##falsyな値
falsyな値 |
---|
false |
null |
0 |
undefined |
0n |
NaN |
< 空文字列 "" も falsy ですね。
JavaScript の仕様には含まれませんが、ブラウザ環境だと歴史的な理由により document.all も falsy だったりします。
(オブジェクトであるにもかかわらず何かに変換しようとすると undefined としてふるまう) >
@nagtkk さんにご指摘頂きました。
有り難うございます!
これらがfalsyな値としてあげられる
##truthyな値
truthyな値は、falsyな値以外と覚えておく
##どのような時活用するのか
プログラムを書いている際に、変数に値が入っているかどうか確認したい時がある (値がnull、undefined以外か確認する)
そんな時活用!!
let a = parseInt("");
console.log(Boolean(a));
if(a) {
console.log('hello');
}
このようにif文の中にいれることによってaの値がfalsyな値かどうか確認することができる。この段階ではaという値はfalsyな値であることから、if文の中の記述は実行されない。
let a = parseInt("");
console.log(Boolean(a));
if(!a) {
console.log('hello');
}
このようにすることで、逆にfalsyな値であった時実行する。そのようなことも可能。
しかし、今回、値がnull、undefined以外か確認するということをしたい為、他のfalsyな値である0のときだけを確認したい場合、違った記述が必要となる。