Object.is和==,===

2019-06-04  本文已影响0人  焦糖大瓜子
  1. ES5比较值得问题:
  1. ES6提出同值相等算法,"Same-value equality",用来比较两个值是否严格相等
Object.is({},{}); // false
Object.is(+0, -0); // false
Object.is(NaN,NaN); // true
  1. 使用ES5实现Object.is
Object.defineProperty(Object, 'is', {
  value: function(x,y){
    if(x === y){
      // 不能让 + 0 === -0
      return x !== 0 || 1/x === 1/y
    }

    return x!==x && y !== y;
  },
  configurable: true,
  enumerable: false,
  writable: true
})```
上一篇 下一篇

猜你喜欢

热点阅读