Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
==或==,我应该使用哪一个来比较javascript中的两个对象?_Javascript_Object_Compare_Equals_Compareobject - Fatal编程技术网

==或==,我应该使用哪一个来比较javascript中的两个对象?

==或==,我应该使用哪一个来比较javascript中的两个对象?,javascript,object,compare,equals,compareobject,Javascript,Object,Compare,Equals,Compareobject,我不是指深度比较。 我只想知道两个变量是否引用同一个实例。我应该使用a==b还是a==b?两个变量可以指向相同的内存,但类型不同吗?因为JavaScript在C++中没有类的概念,所以我不知道对象的类型是什么。是否所有对象都有相同的类型:“对象”因此===决定它们的类型相等?如果是这样的话,===将与===相同。您应该使用===因为它将避免难以找到的错误异常。关于耗时,===也更好。来自: 。。。字符串和数字等基本体按其值进行比较,而数组、日期和普通对象等对象则按其引用进行比较。通过引用进行比较

我不是指深度比较。
我只想知道两个变量是否引用同一个实例。我应该使用
a==b
还是
a==b
?两个变量可以指向相同的内存,但类型不同吗?因为JavaScript在C++中没有类的概念,所以我不知道对象的类型是什么。是否所有对象都有相同的类型:“对象”因此===决定它们的类型相等?如果是这样的话,===将与===相同。

您应该使用===因为它将避免难以找到的错误异常。关于耗时,===也更好。

来自:

。。。字符串和数字等基本体按其值进行比较,而数组、日期和普通对象等对象则按其引用进行比较。通过引用进行比较基本上是检查给定的对象是否引用了内存中的相同位置。下面是一个如何工作的例子

var jangoFett={
职业:“赏金猎人”,
遗传学:“极好”
};
var bobaFett={
职业:“赏金猎人”,
遗传学:“极好”
};
var callMeJango=jangoFett;
//输出:假
console.log(bobaFett==jangoFett);
//输出:真

log(callMeJango==jangoFett)
两个变量是否可以指向相同的内存但类型不同?
否。任何给定时间的变量都是指具有特定类型的特定值。重复项是错误的。这是另一个问题。我肯定在某个地方有一个重复的问题,但链接的问题在这个问题的上下文中不是很相关。虽然这个问题很可能是重复的,但在我看来,链接的问题并不是这个问题的答案。只是在样板中添加一些东西,我总是在这样的问题上引用这一点:。关于时间复杂性===也更好。。。因为?我的意思是耗时,因为它只需要比较值和类型。while==必须解析到所有类型并进行比较