为什么{key:“value”}与{“key”:“value”}不同?

时间:2011-08-11 13:32:53

标签: javascript object

直接来自节点REPL:

> d1 = {key : "value"}
{ key: 'value' }
> d2 = {"key" : "value"}
{ key: 'value' }
> d1 == d2
false

为什么d1与d2不同?

3 个答案:

答案 0 :(得分:8)

不是,如果你只是用d2而不是d1重复第一行,你会得到相同的结果。但是,您创建的两个对象是不同的对象,因此它们不是==。带有对象引用的==检查两个操作数是否引用相同的对象(规范的Section 11.9.3)。你拥有的是两个对象,它们都有一个名为key的属性,其值为“value”。

答案 1 :(得分:0)

因为它们是两个不同的对象。它不是比较对象的成员。

答案 2 :(得分:0)

它们不是同一个对象。您正在进行参考相等比较,而不是值比较。