严格相等适用于变量,但不适用于对象

时间:2019-03-23 12:22:03

标签: javascript object javascript-objects equality

我有一个变量定义为:

var o = new String("0");

在控制台上,我写:

o === o

它返回true 但是当我写:

new String("0") === new String("0")

它返回false

我不明白为什么它只能在变量引用上工作而不能在对象上工作?

我尝试如下:

(new String("0")) === (new String("0"))

因为该问题可能是由于运算符优先级引起的,但它仍返回false

1 个答案:

答案 0 :(得分:0)

 new String("0") === new String("0")

在这里,您正在比较两个具有不同引用的不同字符串。那就是为什么你变得虚假。

 o === o

在这里,您实际上是在比较相同的字符串(在这种情况下,引用是相同的。)