我不是说深度比较。我只想知道两个变量是否引用同一个实例。我应该使用a==b
ora===b
吗?两个变量可以指向同一个内存但类型不同吗?因为javascript在C++中没有class这样的概念,所以我不知道对象的类型是什么。所有对象都具有相同的类型:“object”所以 === 决定它们的类型相等吗?如果是这样,=== 将与 == 相同。
2 回答
1
来自A Drip of Javascript: Object Equality in Javascript:
... 像字符串和数字这样的原语是通过它们的值来比较的,而像数组、日期和普通对象这样的对象是通过它们的引用来比较的。通过引用进行比较基本上检查给定的对象是否引用内存中的相同位置。这是一个如何工作的例子。
var jangoFett = {
occupation: "Bounty Hunter",
genetics: "superb"
};
var bobaFett = {
occupation: "Bounty Hunter",
genetics: "superb"
};
var callMeJango = jangoFett;
// Outputs: false
console.log(bobaFett === jangoFett);
// Outputs: true
console.log(callMeJango === jangoFett);
于 2019-11-29T07:39:16.100 回答
-2
你应该使用 === 因为它会避免很难找到的错误异常。关于耗时,=== 也更好。
于 2019-11-29T07:39:08.500 回答