JavaScriptで 0 と ""(空文字) が一致!?
以下のコード。どうなると思います?
var hoge = 0;
if (hoge == "") {
console.log("match");
} else {
console.log("unmatch");
}
なんと、matchになるんですよ。
== だと 0 も "" も一緒なんですね。
unmacthにしたいのであれば === にしないといけません。
var hoge = 0;
if (hoge === "") {
console.log("match");
} else {
console.log("unmatch");
}
知らずに普通にバグを出してしまいました。
null と undefined
null と undefined も 0と""の関係と一緒で、 == だと同じ扱いになります。
var hoge = undefined;
if (hoge == null) {
console.log("match");
} else {
console.log("unmatch");
}
の結果は match です。
もちろん、 === にすれば unmatch です。
以上!