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