JavaScript比较对象

时间:2018-09-26 13:52:27

标签: javascript

当您将一个对象与另一个具有相同属性的对象进行比较时,为什么它返回false?

For Example 
var person={
  age:30

}

var person2={
  age:40

}

console.log(person==person) or console.log(person===person)

它在控制台 false 中显示吗?

2 个答案:

答案 0 :(得分:2)

对象是引用类型,这意味着相等运算符对内存中的对象而不是其内容的引用进行操作。

在特定情况下,您可以将对象序列化为字符串,然后检查

const compareSerializableObjects = (a, b) =>
  JSON.stringify(a) === JSON.stringify(b)

答案 1 :(得分:1)

person === person在比较同一参考时将始终返回true,如果在对person === person2进行比较,则是另一种引用,它是错误的。 您是说person.age === person2.age吗?