【JavaScript】変数は定義されているのになぜかif文でfalseになる

JavaScript

スポンサーリンク

JavaScriptで変数が定義されているかいないか(null or undefined)で条件分岐するときに以下のように書くと便利ですよね

if(str){
・・・
}

しかし、この書き方実は罠があるんです。

strが文字列のみの想定ならいいですが、数値も想定している場合、以下のような場合にfalseになるんです。

str=0;
if(str){ //falseになる
・・・
}

strは0で定義されているけど、falseになる。

実は、if文の条件が「0」というのはfalseということなんです。

数値も想定している場合は以下のように書く方が良いです。

str=0;
if(str !== null){ //trueになる
・・・
}

JavaScript

Posted by ton