JavaScript:数组之间的比较运算符



我在下面得到了一些空数组,在我比较它们之后,结果都是假的。

var a = new Array();
var aa = new Array();
var b = [];
var bb = [];
document.write(a == b);     // false
document.write(a == aa);    // false
document.write(b == bb);    // false

对于第一个比较(a = = b(,我可以在这个页面,但对于其他两个我只是不知道为什么。有人可以帮助我吗?

答案在所有情况下都是一样的。无论是使用此new Array[]还是使用此[],都会创建一个新数组,并且对该数组的引用将存储到左侧的变量中。话虽如此,在您的情况下,您创建 4 个数组。因此,在变量 aaabbb 中对它们有不同的引用。这就是你提到的所有表达式都被评估为错误的原因。equals 运算符不会比较数组中的项目,只会比较对它们的引用。

让我们考虑以下代码片段。由于 arrayAarrayBarrayC 包含对同一数组的引用,因此当您将项目推送到arrayC并将数组输出到控制台时,您将看到相同的内容。

var arrayA = [];
var arrayB = arrayA;
var arrayC = arrayB;
// Apparently this evaluate to true.
console.log(arrayC == arrayA);
arrayC.push(1);
arrayC.push(2);
arrayC.push(3);
arrayC.push(4);
console.log(arrayA);
console.log(arrayB);
console.log(arrayC);

相关内容

  • 没有找到相关文章

最新更新