JavaScriptの等価性演算子
JavaScriptの等価性演算子の==と===とObject.isについて
Object同士の比較は、3つとも全く同じ挙動をする
同一インスタンスかどうかのみをチェックする
挙動の比較は、===とshallowEqとdeepEqのパターンごとの比較を参照
==
暗黙のキャストを行った上での等価性比較
いろいろややこいので無視したい
ex. NaN != NaN, -0 == +0になる
Objectは同一インスタンスならtrue、それ以外ならfalse
全く同じデータであっても。
Object.is
==と===の中間
型の等価性は見るが、
NaN,-0,+0のみは同一視する
Objectは同一インスタンスならtrue、それ以外ならfalse
全く同じデータであっても。
===
型の等価性
Objectのメモリアドレスを比較する
Objectは同一インスタンスならtrue、それ以外ならfalse
全く同じデータであっても。
参考
等価性の比較と同一性 - JavaScript | MDN