首页 > 其他分享 >Object.is方法的polyfill

Object.is方法的polyfill

时间:2022-12-31 18:55:05浏览次数:42  
标签:return true polyfill Object NaN Infinity 方法

随笔

if (!Object.is) {
  Object.defineProperty(Object, 'is', {
    value: function(x, y) {
      if (x === y) {
        // 需要辨别+0与-0(用"==="比较+0和-0会是true,但实际应该为false),
        // 所以,在下面的判断中,
        // 如果x和y不为0,则返回true;
        // 如果x和y为0,则用 1/x(Infinity/-Infinity) 比较 1/y(Infinity/-Infinity)做比较;
        return x !== 0 || 1 / x === 1 / y;
      }
      // 在使用"==="比较时,NaN跟NaN是不等的,
      // 所以这个单独对NaN的情况进行判断
      return x !== x && y !== y;
    },
  });
}

 

标签:return,true,polyfill,Object,NaN,Infinity,方法
From: https://www.cnblogs.com/fanqshun/p/17017105.html

相关文章