【JavaScript基礎】ifを使った判定について

javascript基礎

以下の式を用いる時、変数が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) {}

とする必要がある。