寻找解释为什么`[1,2,3] === [1,2,3]`在JS中是错误的

时间:2012-08-12 17:14:41

标签: javascript ecmascript-5

我正在考虑ES5的第11.9.6条,试图找出为什么[1,2,3] === [1,2,3]返回false。

代码:

a = [1,2,3]
b = [1,2,3]
a === b // false

严格的平等比较算法的相关规则:

  

x === y

     

(1)如果Type(x)与Type(y)不同,则返回 false

     

...

     

...

     

...

     

(7)如果x和y引用同一个对象,则返回true。否则返回 false

解释器返回false的任何想法?

5 个答案:

答案 0 :(得分:4)

ab是两个不同的对象,它们碰巧具有相同的Number值。如果您执行了a[0] = 42;,那么b[0]仍将等于1。

答案 1 :(得分:0)

他们没有引用同一个对象。就这么简单。

答案 2 :(得分:0)

您的ab看起来像是指不同的对象。它们可能包含相同的值,并且是同一个类的实例,但您可以更改一个,另一个保持不变。

答案 3 :(得分:0)

(7) Return true if x and y refer to the same object. Otherwise return false. - 他们没有提到同一个对象。

答案 4 :(得分:0)

因为创建了两个对象。

相关问题