首页 >web前端 >js教程 >为什么两个空 JavaScript 对象比较不相等?

为什么两个空 JavaScript 对象比较不相等?

Linda Hamilton
Linda Hamilton原创
2024-12-04 01:59:11896浏览

Why Do Two Empty JavaScript Objects Not Compare as Equal?

为什么两个相同的对象彼此不相同?

JavaScript 中的相等运算符 (==) 和严格相等运算符(===) 用于比较值。但是,在比较对象时,这些运算符的行为与您预期的不同。

考虑以下代码:

var a = {};
var b = {};

console.log(a == b); // returns false
console.log(a === b); // returns false

此代码对两个表达式都记录 false,即使 a 和 b 都是空物体。这是为什么?

常规 (==) 和严格 (===) 相等之间的主要区别在于严格相等运算符禁用类型转换。由于 a 和 b 都是对象,因此在这种情况下,相等运算符的类型并不重要。

无论使用什么相等运算符,只有在比较 相同的对象时,对象比较才会计算为 true 。换句话说,给定 var a = {}, b = a, c = {};,a == a, a == b,但是 a != c.

两个不同的对象(即使它们有零个或完全相同的属性)永远不会相等。要比较两个对象属性的相等性,您可以使用 Object.is() 方法或提供的答案中概述的方法。

以上是为什么两个空 JavaScript 对象比较不相等?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn