题解 | #完全等同# #什么是Object.is()#

完全等同

https://www.nowcoder.com/practice/1d7e4611cea64950aa3a10caf2529c92

{"html":"<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"UTF-8\">\n    <style>\n       /* 填写样式 */\n    </style>\n</head>\n\n<body>\n    <!-- 填写标签 -->\n    <script type=\"text/javascript\">\n        // 填写JavaScript\n        function identity(val1, val2) {\n       //return val1 === val2\n       return Object.is(val1,val2)\n\n}\n    </script>\n</body>\n\n</html>","css":"","js":""}

Object.is 是 JavaScript 中用于比较两个值是否严格相等的方法。它类似于 === 操作符,但在某些特殊情况下表现不同,特别是处理 NaN+0-0 时。

Object.is 的基本语法

Object.is(value1, value2)

参数说明

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

返回值

  • 如果 value1value2 严格相等,返回 true
  • 否则,返回 false

特殊情况

  1. NaN 的比较:使用 === 操作符时,NaN 不等于任何值,包括它自己。使用 Object.is 时,NaN 等于 NaN。
  2. +0 和 -0 的比较:使用 === 操作符时,+0 和 -0 被认为是相等的。使用 Object.is 时,+0 和 -0 被认为是不相等的。

示例

示例 1:基本使用

console.log(Object.is(1, 1));       // true
console.log(Object.is(1, '1'));     // false
console.log(Object.is({}, {}));     // false

示例 2:NaN 的比较

console.log(NaN === NaN);           // false
console.log(Object.is(NaN, NaN));   // true

示例 3:+0-0 的比较

console.log(+0 === -0);             // true
console.log(Object.is(+0, -0));     // false

=== 操作符的对比

1 === 1

true

true

1 === '1'

false

false

NaN === NaN

false

true

+0 === -0

true

false

使用场景

  1. 处理 NaN:当你需要确定一个值是否是 NaN 时,Object.is 是一个更好的选择,因为它可以直接比较 NaN
  2. 区分 +0-0:如果你需要区分 +0-0Object.is 可以帮助你实现这一点。

总结

Object.is 是一个用于严格比较两个值是否相等的方法,特别适用于处理 NaN 和区分 +0-0 的情况。与 === 操作符相比,Object.is 在这些特殊情况下表现更一致和准确。

全部评论

相关推荐

爱看电影的杨桃allin春招:我感觉你在炫耀
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务