严格相等适用于变量但不适用于对象
Strict equality works on variables but not on objects
我有一个变量定义为:
var o = new String("0");
在我写的时候在控制台中:
o === o
它returnstrue
但是当我写的时候:
new String("0") === new String("0")
它returnsfalse
我不明白为什么它对变量引用起作用而不对对象起作用?
我试过:
(new String("0")) === (new String("0"))
因为运算符优先级可能会出现问题,但还是returnsfalse
new String("0") === new String("0")
此处您比较的是两个具有不同引用的不同字符串。这就是为什么你越来越假。
o === o
在这里,你实际上是在比较同一个字符串(在这种情况下引用是相同的)。
我有一个变量定义为:
var o = new String("0");
在我写的时候在控制台中:
o === o
它returnstrue
但是当我写的时候:
new String("0") === new String("0")
它returnsfalse
我不明白为什么它对变量引用起作用而不对对象起作用?
我试过:
(new String("0")) === (new String("0"))
因为运算符优先级可能会出现问题,但还是returnsfalse
new String("0") === new String("0")
此处您比较的是两个具有不同引用的不同字符串。这就是为什么你越来越假。
o === o
在这里,你实际上是在比较同一个字符串(在这种情况下引用是相同的)。