码迷,mamicode.com
首页 > 其他好文 > 详细

ECMA6 002 Object.is()

时间:2019-02-06 17:11:11      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:nbsp   新手   缺点   内存   ===   col   数据   OLE   对象   

ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===)。它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身.

Object.is在所有环境中,只要两个值是一样的,它们就应该相等。

============================================================

Object.is 和 相等运算符(==)

console.log(0==false);//true
console.log(Object.is(0,false));//false

Object.is 和 严格相等运算符(===)

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

tips: 新手可以简单理解就是Object.is 更加专注于表面像的 形式比较 。。。

console.log({}=={}); //false 因为每个对象在内存空间的地址不一样
console.log({}==={});//false 因为每个对象在内存空间的地址不一样
console.log(Object.is({},{}));//false 因为每个对象在内存空间的地址不一样

 

ECMA6 002 Object.is()

标签:nbsp   新手   缺点   内存   ===   col   数据   OLE   对象   

原文地址:https://www.cnblogs.com/anduyinglufei/p/10353828.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!