📜  Javascript Object.is()

📅  最后修改于: 2020-09-27 06:50:42             🧑  作者: Mango

JavaScript Object.is()方法检查两个值是否相同。

is()方法的语法为:

Object.is(value1, value2)

is()方法是静态方法,使用Object类名称进行调用。


is()参数

is()方法具有:

  • value1-要比较的第一个值。
  • value2-要比较的第二个值。

从is()返回值
  • 返回一个Boolean指示两个参数是否为相同的值。

如果下列条件之一成立,则两个值相同:

  • 两者都undefined
  • 都为null
  • truefalse
  • 相同的长度的以相同字符以相同的顺序两个字符串
  • 两者都相同(意味着两个对象都有相同的引用)
  • 两个数字和
    • +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

笔记:

  1. == 运算符在测试是否相等之前对两侧(如果不是同一类型)施加各种强制,而Object.is()不这样做。
  2. === 运算符将数字值-0+0视为相等,并将Number.NaN视为不等于NaNObject.is()则相反。

推荐读物: Javascript对象