美文网首页
== 和 === 如何使用?

== 和 === 如何使用?

作者: akira_preview | 来源:发表于2017-08-14 10:03 被阅读13次

    为什么有这样问题?== 会造成子类型的转换,=== 区分不了 NaN === NaN (返回false),+0 === -0

    现在统一的做法是参照jquery做法。 统一的做法是全部用===,除一种情况例外,即验证对象属性是否存在时,才用==

    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
    })
    

    相关文章

      网友评论

          本文标题:== 和 === 如何使用?

          本文链接:https://www.haomeiwen.com/subject/sngyrxtx.html