目次
JavaScriptの判定方法
JavaScriptには、様々な判定方法があります。例えば「if (値)」と「if (値 != null)」、「==」と「===」など。この違いを理解せず使用していると、思わぬバグを作りこんでしまう危険性があります。
本記事では、JavaScritpの判定方法について紹介しています。
「if (値)」と「if (値 != null)」の違い
if (値)による判定
if (値)の判定では、以下の例の通り「null」「undefined」「空文字」「0」が偽(false)です。「null」「undefined」「空文字」「0」以外を処理したい場合は、この判定式を使用します。
var value_undefined;
var value_null = null;
var value_empty = "";
var value_zero = 0;
var value_zero_str = "0";
if (value_undefined) {} /* false */
if (value_null) {} /* false */
if (value_empty) {} /* false */
if (value_zero) {} /* false */
if (value_zero_str) {} /* true */
ここで要注意なのが数値の「0」も偽(false)になるという点です。
スポンサーリンク
if (値 != null)による判定
if (値 != null)の判定では、以下の例の通り「null」「undefined」が偽(false)です。「null」と「undefined」以外を処理したい場合は、この判定式を使用します。
var value_undefined;
var value_null = null;
var value_empty = "";
var value_zero = 0;
var value_zero_str = "0";
if (value_undefined != null) {} /* false */
if (value_null != null) {} /* false */
if (value_empty != null) {} /* true */
if (value_zero != null) {} /* true */
if (value_zero_str != null) {} /* true */
もし「null」と「undefined」、空文字以外を処理したい場合は if (値 != null && 値 != "") で空文字の条件式を追加しましょう。
また「undefined」のみを判定したい場合は、if (値 != undefined) で判定することもできます。
「==」と「===」の違い
等価演算子(==)
等価演算子は、変数の型に関わらず値で比較します。
例えば、次のように「数値の1」と「文字列の1」を等価演算子(==)で比較すると、結果は真(true)です。
var data_int = 1;
var data_string = "1";
if (data_int == data_string) {} /* true */
厳密等価演算子(===)
厳密等価演算子は、変数の型まで見て値を比較します。
例えば、次のように「数値の1」と「文字列の1」を厳密等価演算子(===)で比較すると、結果は偽(false)です。
var data_int = 1;
var data_string = "1";
if (data_int === data_string) {} /* false */
helpful
この記事は役に立ちましたか?