先日、JavaScript でこんな感じのコードを見かけました。
if (val == null || val == '') { // 値がないときの処理 }
値が null
か空文字かをチェックするコードです。おそらく文字列を想定していたと思われますが、実際は変数に数値が代入されていました。
空文字と 0 を 等価演算子 (==
) で比較すると true
になるため、ここでは 0 が来たときに想定通りの挙動にはなりません。
なので、ここでは 厳密等価演算子 (===
) で比較します。
0 == '' //=> true 0 === '' //=> false
先のコード例はこうなります。
if (val == null || val === '') { // 値がないときの処理 }
ちなみに、変数が undefined
の場合は null
との等価演算子で引っ掛けられるので、ここはそのままで OK です。
undefined == null //=> true
現場からは以上です。
(2019/03/15 追記)
こちらに詳しくまとめられてました。