behavior of '== 'with objects in Javascript

behavior of '== 'with objects in Javascript

本文关键字:in Javascript objects with behavior of      更新时间:2023-09-26

我知道'=='和'==='的区别如果我错了,请纠正我'=='操作符检查值是否正确,即它是否强制?和'==='检查值和类型?但我不明白我是如何得到以下结果的,请看看:

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

这是因为您比较对象引用,您可以通过阅读本文档的最后一部分有一个很好的理解。

这和你的很像:

// 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