JavaScript中Object-is实现值相等性判断的算法
·
Object.is 是比 === 更精确的严格相等判断方法,能正确处理 NaN === NaN 为 false 和 +0 === -0 为 true 的边界情况;其核心逻辑是:同为 NaN 返回 true,+0 与 -0 返回 false,其余等价于 ===。Object.is 是 JavaScript 中用于判断两个值是否严格相等的内置方法,它比 === 更精确地处理一些边界情况,比如 +0 与 -0、NaN 的比较。核心判断逻辑Object.is 的算法可概括为以下三步:如果两个值都是 NaN,返回 true(=== 会返回 false) 如果一个是 +0、另一个是 -0,返回 false(=== 认为它们相等) 其余情况等价于严格相等 ===与 === 的关键区别虽然多数场景下 Object.is(a, b) 和 a === b 结果一致,但以下两种情况不同:Object.is(NaN, NaN) === true,而 NaN === NaN 为 false Object.is(+0, -0) === false,而 +0 === -0 为 true简易手写实现参考可借助 Number.isNaN 和 1 / x 区分正负零来模拟: WisPaper 复旦大学研发的AI学术搜索工具,5分钟内筛选1000篇论文
更多推荐
所有评论(0)