ES6 - Object.is()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6 - Object.is()相关的知识,希望对你有一定的参考价值。
Object.is()
会在下面这些情况下认为两个值是相同的:
- 两个值都是
undefined
- 两个值都是
null
- 两个值都是
true
或者都是 false
- 两个值是由相同个数的字符按照相同的顺序组成的字符串
- 两个值指向同一个对象
- 两个值都是数字并且
- 都是正零
+0
- 都是负零
-0
- 都是
NaN
- 都是除零和
NaN
外的其它同一个数字
这种相等性判断逻辑和传统的 ==
运算符所用的不同,==
运算符会对它两边的操作数做隐式的类型转换(如果它们是不同类型的值的话),然后才进行相等性比较,(所以才会有类似 "" == false
为 true
的现象),但 Object.is
不会做这种类型转换。
当然,严格相等运算符 ===
也不会对操作数进行类型转换,但是它会把 -0
和 +0 这两个数值视为相同的,
还会把两个 NaN
看成是不相等的。
以上是关于ES6 - Object.is()的主要内容,如果未能解决你的问题,请参考以下文章
es6object.is()&&==&&===
关于es6中对象的扩展
ES6中新增的 is ,has,assign方法
ES6中新增的 is ,has,assign方法
ES6 之 对象的扩展
ES6学习手册(13)