一尘不染

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

javascript

似乎以下代码应返回true,但返回false。

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

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

这有什么意义?


阅读 857

收藏
2020-04-25

共1个答案

一尘不染

常规(==)和严格(===)相等之间的唯一区别是,严格相等运算符禁用类型转换。由于已经在比较两个相同类型的变量,因此使用的相等运算符的类型无关紧要。

不管您使用常规相等还是严格相等,对象比较仅true 在您比较相同的精确对象时得出

也就是说,给定var a = {}, b = a, c = {};a == aa == b,但a != c

两个不同的对象(即使它们都具有零或相同的精确属性)也永远不会相等地进行比较。如果需要比较两个对象的属性的相等性。

2020-04-25