JavaScript Object.is()

摘要: 在本教程中,您将学习有关 JavaScript Object.is() 方法的知识,以检查两个值是否相同。

Object.is() 的行为类似于 === 运算符,但有以下两个区别:

  • -0 和 +0
  • NaN

负零

=== 运算符将 -0+0 视为相同的值。

let amount = +0,
    volume = -0;
console.log(volume === amount);Code language: JavaScript (javascript)

输出

trueCode language: JavaScript (javascript)

然而,Object.is() 将 +0 和 -0 视为不同的值。例如

let amount = +0,
    volume = -0;
console.log(Object.is(amount, volume));Code language: JavaScript (javascript)

输出

falseCode language: JavaScript (javascript)

NaN

=== 运算符认为 NaNNaN 是不同的值。NaN 是唯一不等于自身的数字。例如

let quantity = NaN;
console.log(quantity === quantity);Code language: JavaScript (javascript)

输出

false


然而,Object.is()NaN 视为相同的值。

let quantity = NaN;

console.log(Object.is(quantity, quantity));


输出

true


请参阅以下相同性比较表以供参考

JavaScript sameness comparison table

本教程对您有帮助吗?