为什么两个相同的对象彼此不相等?
似乎以下代码应返回true,但返回false。
var a = {};var b = {};
console.log(a==b); //returns false
console.log(a===b); //returns false
这有什么意义?
回答:
常规(==
)和严格(===
)相等之间的唯一区别是,严格相等运算符禁用类型转换。由于已经在比较两个相同类型的变量,因此使用的相等运算符的类型无关紧要。
不管您使用常规相等还是严格相等,对象比较仅true
。
也就是说,给定var a = {}, b = a, c = {};
,a == a
,a == b
,但a != c
。
两个不同的对象(即使它们都具有零或相同的精确属性)也永远不会相等地进行比较。如果需要比较两个对象的属性的相等性。
以上是 为什么两个相同的对象彼此不相等? 的全部内容, 来源链接: utcz.com/qa/428686.html