这个问题在这里已有答案:
我有一个变量定义为:
var o = new String("0");
在我写的时候在控制台中:
o === o
它返回true
,但当我写:
new String("0") === new String("0")
它返回false
我不明白为什么它在变量引用上而不是在对象上?
我试过它:
(new String("0")) === (new String("0"))
因为运算符优先级可能会出现问题,但它仍会返回false
new String("0") === new String("0")
在这里,您将比较两个具有不同引用的不同字符串。这就是为什么你会变得虚假。
o === o
在这里,您实际上是在比较相同的字符串(在这种情况下引用是相同的)。