文章目录
Object静态方法
Object.is()
Object.is()
判断两个值是否为相同值,不等价于“===”
语法:
Object.is(value1, value2)
参数:
-
value1
要比较的第一个值。
-
value2
要比较的第二个值。
返回值:
返回一个布尔值,相同为true,不相同为false
描述:
Object.is()
确定两个值是否为相同值,如果以下其中一项成立,则两个值相同:
- 都是
undefined
- 都是
null
- 都是
true
或者都是false
- 都是长度相同、字符相同、顺序相同的字符串
- 都是相同的对象(意味着两个值都引用了内存中的同一对象)
- 都是
BigInt
且具有相同的数值 - 都是
symbol
且引用相同的symbol
值 - 都是数字且
- 都是
+0
- 都是
-0
- 都是
NaN
- 都有相同的值,非零且都不是
NaN
- 都是
示例:
// 案例 1:评估结果和使用 === 相同
Object.is(25, 25); // true
Object.is("foo", "foo"); // true
Object.is("foo", "bar"); // false
Object.is(null, null); // true
Object.is(undefined, undefined); // true
Object.is(window, window); // true
Object.is([], []); // false
const foo = {
a: 1 };
const bar = {
a: 1 };
const sameFoo = foo;
Object.is(foo, foo); // true
Object.is(foo, bar); // false
Object.is(foo, sameFoo); // true
// 案例 2: 带符号的 0
Object.is(0, -0)