严格的相等适用于变量但不适用于对象[重复]

问题描述 投票:0回答:1

我有一个变量定义为:

var o = new String("0");

在我写的时候在控制台中:

o === o

它返回true,但当我写:

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

它返回false

我不明白为什么它在变量引用上而不是在对象上?

我试过它:

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

因为运算符优先级可能会出现问题,但它仍会返回false

javascript object javascript-objects equality
1个回答
0
投票
 new String("0") === new String("0")

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

 o === o

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

© www.soinside.com 2019 - 2024. All rights reserved.