判断两个值是否相同。
如果下列任何一项成立,则两个值相同:
两个值都是 undefined
两个值都是 null
两个值都是 true 或者都是 false
两个值是由相同个数的字符按照相同的顺序组成的字符串
两个值指向同一个对象
两个值都是数字并且
都是正零 +0
都是负零 -0
都是 NaN
都是除零和 NaN 外的其它同一个数字
例子
<script>
Object.is('foo', 'foo');
console.log(Object.is('foo', 'foo'))// true
Object.is(window, window);
console.log(Object.is(window, window))// true
Object.is('foo', 'bar');
console.log(Object.is('foo', 'bar'))// false
Object.is([], []);
console.log(Object.is([], []))// false
var test = {
a: 1
};
Object.is(test, test);
console.log(Object.is(test, test))// true
Object.is(null, null);
console.log(Object.is(null, null))// true
// 特例
Object.is(0, -0);
console.log(Object.is(0, -0))// false
Object.is(-0, -0);
console.log(Object.is(-0, -0))// true
Object.is(NaN, 0 / 0);
console.log(Object.is(NaN, 0 / 0))// true
</script>