ES6-对象的扩展-Object.is()
来源:互联网 发布:淘宝店怎么刷流量群 编辑:程序博客网 时间:2024/06/08 16:21
ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===)。它们都有缺点,前者会自动转换数据类型,后者的 NaN 不等于自身,以及 +0 等于 -0。JavaScript 缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。
ES6 提出“Same-value equality”(同值相等)算法,用来解决这个问题。
Object.is 就是部署这个算法的新方法。它用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。
Object.is('foo', 'foo')// trueObject.is({}, {})// false不同之处只有两个:一是 +0 不等于 -0,二是 NaN 等于自身。
+0 === -0 //trueNaN === NaN // falseObject.is(+0, -0) // falseObject.is(NaN, NaN) // trueES5 可以通过下面的代码,部署 Object.is。
Object.defineProperty(Object, 'is', { value: function(x, y) { if (x === y) { // 针对+0 不等于 -0的情况 return x !== 0 || 1 / x === 1 / y; } // 针对NaN的情况 return x !== x && y !== y; }, configurable: true, enumerable: false, writable: true});
阅读全文
0 0
- ES6-对象的扩展-Object.is()
- ES6-对象的扩展-Object.assign()
- ES6-对象的扩展-Object.getOwnPropertyDescriptors()
- ES6-对象的扩展-Object.keys(),Object.values(),Object.entries()
- ES6-对象的扩展-_proto_ 属性,Object.setPrototypeOf(),Object.getProtitypeOf()
- JavaScript对象扩展(Object.is(), assign(), 对象遍历keys, es6原型介绍)
- ES6对象的扩展
- 【es6】对象的扩展
- ES6--对象的扩展
- ES6对象的扩展
- ES6---全新的对象object
- ES6-Array对象的扩展
- 【ES6】对象的扩展2
- es6入门-对象的扩展
- ES6--对象、函数的扩展
- 07、ES6 对象的扩展
- ES6(八) 对象的扩展
- ES6--内置对象的扩展
- Eclipse 快捷键大全
- 防止二次点击
- kinect2 安装 rtabmap 出错 解决方法
- 服务器端设置跨域请求
- ViewPager动态添加、删除 item 视图 顺带送一个画廊效果[附源码]
- ES6-对象的扩展-Object.is()
- A+B for Input-Output Practice (VII)
- 12基于opencv的固定阈值分割_自适应阈值分割
- Eclipse_Oxygen版本安装问题
- 超越阿里云,华为云网络服务竟然这么厉害!
- xmake-vscode插件开发过程记录
- [Leetcode] 461. Hamming Distance 解题报告
- 设置apache允许跨域 ajax请求
- R语言批量整合多个文件到一个文件honey心得