以下の式を用いる時、変数がfalsyかtruthyかで判定される。
if(変数) {}
falsyとは、
console.log(Boolean(0)); //→false
といったようなBooleanで真偽値に変換された時にfalseになるもののことを言う。
- false
- null
- undefined
- 0
- 0n
- NaN
- “”(空文字)
以上がfalsyで、truthyはそれ以外である。
if("0"){} //true→文字列なら空文字のみfalse
if("false"){} //true→文字列なら空文字のみfalse
if(-1){} //true→数値は0のみfalse
if(!0){} //true→!をつけるとBooleanに変換されるのでfalseからtrueになる
例えば以上の4つはtrueとなるのでtruthyである。
変数のみの条件だとあくまで上記のfalsyかtruthyかを判定しているので、もし0だけ弾きたい場合は
if(変数 !== 0) {}
とする必要があり、またnullとundefinedのみを弾きたい場合は
if(変数 !== null && 変数 !== undefined) {}
とする必要がある。