== 和 === 如何使用?

為什么有這樣問題?== 會造成子類型的轉(zhuǎn)換,=== 區(qū)分不了 NaN === NaN (返回false),+0 === -0。

現(xiàn)在統(tǒng)一的做法是參照jquery做法。 統(tǒng)一的做法是全部用===,除一種情況例外,即驗證對象屬性是否存在時,才用==。

es6 直接添加了Object.is()方法。

    console.log(Object.is(NaN,NaN)); //true
    console.log(Object.is(+0,-0)); // false

es5 如何解決===問題。

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
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容