is()
方法的语法为:
Object.is(value1, value2)
is()
方法是静态方法,使用Object
类名称进行调用。
is()参数
is()
方法具有:
- value1-要比较的第一个值。
- value2-要比较的第二个值。
从is()返回值
- 返回一个
Boolean
指示两个参数是否为相同的值。
如果下列条件之一成立,则两个值相同:
- 两者都
undefined
- 都为
null
- 都
true
或false
- 相同的长度的以相同字符以相同的顺序两个字符串
- 两者都相同(意味着两个对象都有相同的引用)
- 两个数字和
- 都+0
- 两者-0
- 都是
NaN
- 或
NaN
零又非NaN
且两者都具有相同的值
示例:使用Object.is()
// Objects with the same values
console.log(Object.is("JavaScript", "JavaScript")); // true
// Objects with different values
console.log(Object.is("JavaScript", "javascript")); // false
console.log(Object.is([], [])); // false
let obj1 = { a: 1 };
let obj2 = { a: 1 };
console.log(Object.is(obj1, obj1)); // true
console.log(Object.is(obj1, obj2)); // false
console.log(Object.is(null, null)); // true
// Special Cases
console.log(Object.is(0, -0)); // false
console.log(Object.is(-0, -0)); // true
console.log(Object.is(NaN, 0 / 0)); // true
输出
true
false
false
true
false
true
false
true
true
笔记:
-
==
运算符在测试是否相等之前对两侧(如果不是同一类型)施加各种强制,而Object.is()
不这样做。 -
===
运算符将数字值-0和+0视为相等,并将Number.NaN
视为不等于NaN
而Object.is()
则相反。
推荐读物: Javascript对象