JavaScriptで `==` と `===` の違いでうっかりハマりそうだと思ったとこメモ

console.log(1 == "1");          // => true
console.log(1 == "01");         // => true
console.log(0 == false);        // => true
console.log(0 == null);         // => false
console.log(null == undefined); // => true

説明

これらの現象は 等価演算子( == ) の評価を行うときにオペランド同士の型違かった場合に裏で勝手に型を変換してしまうからなんだと。

JavaScriptの現行コードまで見た訳ではありません

追記

等価演算子を用いて比較した場合の対応テーブルが公開されていたので追記 dorey.github.io

おわりに

いつも同じ値かどうか評価したいときはとりあえず 厳密等価演算子( === )を使えば間違いないぐらいしか覚えてなかったけど逆に例外ってどこにあるか覚えておくとなんか自信になるよね。

参考: JavaScript Primer | 等価演算子(==)