==と==はどのように使用しますか?

751 ワード

どうしてこんな問題があるの?==はサブタイプの変換をもたらし、===NaN === NaN(falseに戻る)、+0 === -0を区別できない.
現在統一されている方法はjqueryメソッドを参照することです.統一的には、すべて===を使用し、オブジェクト属性が存在するかどうかを検証する場合を除いて==を使用します.
Es 6はObjectを直接追加した.is()メソッド.
    console.log(Object.is(NaN,NaN)); //true
    console.log(Object.is(+0,-0)); // false

Es 5は===問題をどのように解決するか.
Object.defineProperty(Object,'is',{
    value: function(x,y){
        if(x === y) {
            // +0 === -0, false
            return x !== 0  || 1/x === x/y;
        }
        return  x !== x && y!== y;
    }
    configurable: true,
    enumerable: false,
    writable: false
})