ECMAScript 6 新增值比较函数 Object.is
作者:函数茶馆时间:2026-10-29 11:00:24浏览:499
本文介绍 ECMAScript 6 新增的 Object.is 方法,用于更精确的值比较。虽然多数情况下 Object.is 等价于 ===,但在处理 NaN、+0 和 -0 时存在关键差异。文章通过代码示例展示了 Object.is 如何解决 === 在特殊值比较上的局限,帮助开发者选择正确的比较方式。
传统值比较方法的局限性
在此之前,我们通常使用双等号“==”或三等号“===”来比较值。其中,三等号“===”的执行标准更为严格,一旦比较双方的数据类型不同,会立即返回 false。
此外,存在一个唯一的例外值,即 NaN,它不与任何值相等,包括它自己。

ECMAScript 6 中 Object.is 的引入
随着 ECMAScript 6 的引入,Object.is 方法被加入,这使得值比较的逻辑变得更加复杂。在大多数常规情况下,Object.is 的行为与“===”是等价的,具体表现如下。
1 === 1 // true
Object.is(1, 1) // true
'a' === 'a' // true
Object.is('a', 'a') // true
true === true // true
Object.is(true, true) // true
null === null // true
Object.is(null, null) // true
undefined === undefined // true
Object.is(undefined, undefined) // true
Object.is 与 === 的关键差异
然而,当涉及 NaN、0、+0 和 -0 这些特殊数值时,Object.is 的表现与“===”存在显著差异。
NaN === NaN // false
Object.is(NaN, NaN) // true
0 === -0 // true
Object.is(0, -0) // false
-0 === +0 // true
Object.is(-0, +0) // false
以上所述就是本文的全部内容了,希望大家能够喜欢。
作者最新文章
JS大数值转字符串出现科学计数法怎么办
2026-11-05 17:09:21
JS split切割后出现空字符串怎么过滤
2026-11-05 16:00:30
在 React 或 Vue 项目中封装使用 JS 节流防抖
2026-11-05 15:27:29
JavaScript中怎么将带小数的字符串转为整数?
2026-11-05 14:32:38
怎么用JavaScript策略模式重构电商促销计算逻辑?
2026-11-05 14:01:09
