JavaScript中两个对象的区别是什么?

what is difference between two object in JavaScript

本文关键字:对象 区别 是什么 两个 JavaScript      更新时间:2023-09-26

谁能帮助我了解在JavaScript中以两种方式创建的obj1obj2的差异?它们在控制台中看起来是一样的。

var obj1 = { 'name': 'blue', 'shade': 'dark'};
var obj2 = JSON.parse('{"name":"blue","shade":"dark"}');

因为
 (obj1 === obj2)  is false as 
 (obj1 == obj2) is false

而在javascript控制台显示为

Object {name: "blue", shade: "dark"}
Object {name: "blue", shade: "dark"}

虽然对象的内容是相同的,但是有对两个独立对象的引用,这就是==和===都失败的原因(它们检查的是引用而不是内容)。

正如ABucin所说,javascript检查引用,如果你仍然想检查两个json是否相等,你可以尝试使用

JSON.stringify(obj1) === JSON.stringify(obj2)

或检查每个键(稍微复杂一些,但在键的顺序不同的情况下更有效)。

试着读一下:

比较两个json对象

您正在使用obj1创建对象,而在obj2中您将JSON对象解析为对象。由于两个对象是不同的(不同的引用),它们被视为不同的

你可以在这里了解更多信息