题解 | #完全等同# #什么是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:要比较的第二个值。
返回值
- 如果
value1
和value2
严格相等,返回true
。 - 否则,返回
false
。
特殊情况
- NaN 的比较:使用 === 操作符时,NaN 不等于任何值,包括它自己。使用 Object.is 时,NaN 等于 NaN。
- +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
与 ===
操作符的对比
|
|
|
|
|
|
|
|
|
|
|
|
使用场景
- 处理
NaN
:当你需要确定一个值是否是NaN
时,Object.is
是一个更好的选择,因为它可以直接比较NaN
。 - 区分
+0
和-0
:如果你需要区分+0
和-0
,Object.is
可以帮助你实现这一点。
总结
Object.is
是一个用于严格比较两个值是否相等的方法,特别适用于处理 NaN
和区分 +0
与 -0
的情况。与 ===
操作符相比,Object.is
在这些特殊情况下表现更一致和准确。