ES6 Object.is() 的使用

ES6 Object.is 的使用

定义:方法判断两个值是否是相同的值。

语法:Object.is(value1, value2)

value1:第一个需要比较的值
value2:第二个需要比较的值

返回值:表示两个参数是否相同的 布尔值

Object.is('foo', 'foo');     // true
Object.is(window, window);   // true

Object.is('foo', 'bar');     // false
Object.is([], []);           // false

var foo = { a: 1 };
var bar = { a: 1 };
Object.is(foo, foo);         // true
Object.is(foo, bar);         // false

Object.is(null, null);       // true

// 特例
Object.is(0, -0);            // false
Object.is(-0, -0);           // true
Object.is(NaN, 0/0);         // true

此方法的比较类似于 ‘===’ 但是还有一些不同之处,比如:

// 使用 ‘===’
+0 === -0 //true
NaN === NaN // false
// 使用 Object.is()
Object.is(+0, -0) // false
Object.is(NaN, NaN) // true

更详细的使用方法请参考文档:MDN Object.is()