JavaScript中Object.is()与哪些方法在比较值时表现不同?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1066个文字,预计阅读时间需要5分钟。
三重相等运算符 `===` 用于比较两个值是否严格相等,包括类型和值。以下是几个例子:
1. `1===1`;// 结果为 true
2.`1==='1'`;// 结果为 false
3.`1===true`;// 结果为 false
但自 ES2015 起引入了 `Object.is()` 方法,它与 `===` 几乎相同,但可以正确处理一些特殊情况:
`Object.is(1, 1)`;// 结果为 true
两者在处理 `0` 和 `-0` 以及 `NaN` 时有所不同:
`1===-0`;// 结果为 false
`Object.is(1, -0)`;// 结果为 true`NaN===NaN`;// 结果为 false`Object.is(NaN, NaN)`;// 结果为 true
三重相等运算符 === 严格检查2个值是否相同:
1 === 1; // => true 1 === '1'; // => false 1 === true; // => false
但是,ES2015规范引入了 Object.is(),其行为与严格的相等运算符几乎相同:
Object.is(1, 1); // => true Object.is(1, '1'); // => false Object.is(1, true); // => false
主要问题是:什么时候使用 Object.is() 代替严格的相等性检查?让我们找出答案。
本文共计1066个文字,预计阅读时间需要5分钟。
三重相等运算符 `===` 用于比较两个值是否严格相等,包括类型和值。以下是几个例子:
1. `1===1`;// 结果为 true
2.`1==='1'`;// 结果为 false
3.`1===true`;// 结果为 false
但自 ES2015 起引入了 `Object.is()` 方法,它与 `===` 几乎相同,但可以正确处理一些特殊情况:
`Object.is(1, 1)`;// 结果为 true
两者在处理 `0` 和 `-0` 以及 `NaN` 时有所不同:
`1===-0`;// 结果为 false
`Object.is(1, -0)`;// 结果为 true`NaN===NaN`;// 结果为 false`Object.is(NaN, NaN)`;// 结果为 true
三重相等运算符 === 严格检查2个值是否相同:
1 === 1; // => true 1 === '1'; // => false 1 === true; // => false
但是,ES2015规范引入了 Object.is(),其行为与严格的相等运算符几乎相同:
Object.is(1, 1); // => true Object.is(1, '1'); // => false Object.is(1, true); // => false
主要问题是:什么时候使用 Object.is() 代替严格的相等性检查?让我们找出答案。

