提问人:Shiran Abbasi 提问时间:3/23/2019 更新时间:3/23/2019 访问量:52
严格相等对变量有效,但对对象无效 [重复]
Strict equality works on variables but not on objects [duplicate]
问:
这个问题在这里已经有答案了:
如何确定两个 JavaScript 对象的相等性? (76 个答案)
为什么 'Object() === new Object()' 等于 'false'?[复制] (1 个答案)
4年前关闭。
我有一个变量定义为:
var o = new String("0");
在控制台中,当我写:
o === o
它返回,但是当我写:true
new String("0") === new String("0")
它返回false
我不明白为什么它对变量引用起作用,而对对象不起作用?
我试过:
(new String("0")) === (new String("0"))
因为问题可能是由于运算符优先级而出现的,但它仍然会返回false
答:
0赞
Vardan Gupta
3/23/2019
#1
new String("0") === new String("0")
在这里,您正在比较具有不同引用的两个不同字符串。这就是为什么你得到错误。
o === o
在这里,您实际上是在比较相同的字符串(在本例中引用相同)。
评论
0赞
Shiran Abbasi
3/23/2019
哦,那是我的错。谢谢
评论
0 == "0"
==
===