使用Javascript中的对象进行' =='的行为

时间:2014-07-19 04:50:51

标签: javascript operators

我知道'=='和'==='之间的区别 请纠正我,如果我错了'=='运营商检查价值是否正确,即它是否强制?并且'==='检查值并输入两者? 但我不明白我如何得到以下结果请看看:

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提供的主题我可以收集到  '=='对于引用类型和基本类型的行为不同,即如果其中一个操作数是基元,但如果两个都是对象,那么它会进行强制,那么它只比较引用。那么我可以得出结论,如果两个操作数都是如上所述的引用类型,'=='和'==='的工作完全相同吗?

1 个答案:

答案 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