Javascript Object.is() 用法详解
【摘要】 Object.is() 定义Object.is() 是 JavaScript 中的一个内置方法,用于比较两个值是否严格相等(即 === 比较的结果),但在处理某些特殊情况时,它提供了与 === 不同的行为。具体来说,Object.is() 在以下两个方面与 === 存在差异:+0 和 -0 被认为是不相等的。NaN 与 NaN 被认为是相等的。Object.is() 方法提供了一种更精确的...
Object.is() 定义
Object.is()
是 JavaScript 中的一个内置方法,用于比较两个值是否严格相等(即 ===
比较的结果),但在处理某些特殊情况时,它提供了与 ===
不同的行为。具体来说,Object.is()
在以下两个方面与 ===
存在差异:
+0
和-0
被认为是不相等的。NaN
与NaN
被认为是相等的。
Object.is()
方法提供了一种更精确的方式来比较两个值是否相等,特别是在处理数字的特殊值时。
用法详解
语法:
Object.is(value1, value2)
value1
:要比较的第一个值。value2
:要比较的第二个值。
返回值:
- 如果两个值严格相等(考虑到了
+0
和-0
的区别以及NaN
的特殊情况),则返回true
。 - 否则,返回
false
。
示例代码:
console.log(Object.is('foo', 'foo')); // true
console.log(Object.is({}, {})); // false,对象比较的是引用
console.log(Object.is(+0, -0)); // false,+0 和 -0 被视为不相等
console.log(Object.is(-0, -0)); // true
console.log(Object.is(NaN, 0/0)); // true,NaN 与 NaN 被视为相等
console.log(Object.is(NaN, NaN)); // true
console.log(Object.is(42, 42)); // true
console.log(Object.is(true, true)); // true
console.log(Object.is(false, false)); // true
console.log(Object.is(null, null)); // true
console.log(Object.is(undefined, undefined)); // true
console.log(Object.is([], [])); // false,数组比较的是引用
console.log(Object.is([], [])); // false,同上
console.log(Object.is(function() {}, function() {})); // false,函数比较的是引用
特殊情况说明:
Object.is(+0, -0)
返回false
,因为+0
和-0
虽然被认为是相等的(使用===
),但在Object.is()
中它们被视为不相等。Object.is(NaN, NaN)
返回true
,因为NaN
与NaN
在Object.is()
中被认为是相等的,这与===
不同,因为在===
中NaN !== NaN
。
使用场景:
- 当需要精确比较两个值是否相等时,特别是在处理数字的特殊值(如
+0
、-0
和NaN
)时,可以使用Object.is()
。 - 在编写需要精确判断相等性的算法或逻辑时,
Object.is()
可以提供比===
更准确的结果。
总的来说,Object.is()
提供了一种更严格、更精确的相等性比较方法,特别适用于处理 JavaScript 中的一些特殊情况。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)