我知道'=='和'==='之间的区别 请纠正我,如果我错了'=='运营商检查价值是否正确,即它是否强制?并且'==='检查值并输入两者? 但我不明白我如何得到以下结果请看看:
var a= new String("one");
var b= new String("one");
a==b // I expected it to be true but it is FALSE please explain both the objects have same value then why?
从Felix提供的主题我可以收集到 '=='对于引用类型和基本类型的行为不同,即如果其中一个操作数是基元,但如果两个都是对象,那么它会进行强制,那么它只比较引用。那么我可以得出结论,如果两个操作数都是如上所述的引用类型,'=='和'==='的工作完全相同吗?
答案 0 :(得分:2)
那是因为你比较了对象引用,你可以通过阅读这个documentation的最后一部分来理解它。
这和你的一样:
// fruit object reference variable
var fruit = {name: "apple"};
// fruitbear object reference variable
var fruitbear = {name: "apple"};
fruit == fruitbear // return false
fruit === fruitbear // return false
你应该做些什么才能成真:
// fruit object reference variable
var fruit = {name: "apple"};
// fruitbear object reference variable
var fruitbear = fruit; // assign fruit object reference to fruitbear object reference variable
// here fruit and fruitbear pointing to same object called fruit
fruit == fruitbear // return true
// here fruit and fruitbear pointing to same object called fruit
fruit === fruitbear // return true