返回

编程高手,且慢!对于 new Array(4),你还需掌握这些细节!

前端

引言:数组的创建方式

在 JavaScript 中,创建数组有多种方式,其中最常见的就是使用中括号 [] 和 new Array()。

const arr1 = [];
const arr2 = new Array();

这两种方式都可以创建一个空的数组。但是,当我们想创建一个指定长度的数组时,情况就变得有些微妙了。

new Array(4) 的奥秘

我们希望通过 new Array(4) 来创建一个长度为 4 的数组,但结果却令人惊讶,它返回了一个空数组。这是为什么呢?

问题的关键在于 new Array(4) 并不是我们想象中的那样,它并不是直接创建一个长度为 4 的数组。实际上,它创建一个长度为 1 的数组,并且第一个元素的值为 4。

const arr3 = new Array(4);
console.log(arr3); // [4]
console.log(arr3.length); // 1

揭开谜底:为什么返回空数组

现在,我们知道 new Array(4) 实际上创建一个长度为 1 的数组,那么为什么当我们尝试访问 arr3[0] 时,它会返回 undefined 呢?

这是因为 JavaScript 数组的索引是从 0 开始的。这意味着 arr3[0] 实际上不存在,因此返回 undefined。

正确使用 new Array(4)

既然我们已经了解了 new Array(4) 的工作原理,那么如何正确使用它来创建一个长度为 4 的数组呢?

我们可以使用以下两种方法:

// 方法一:使用 fill() 方法
const arr4 = new Array(4).fill(undefined);
console.log(arr4); // [undefined, undefined, undefined, undefined]
console.log(arr4.length); // 4

// 方法二:使用循环
const arr5 = [];
for (let i = 0; i < 4; i++) {
  arr5.push(undefined);
}
console.log(arr5); // [undefined, undefined, undefined, undefined]
console.log(arr5.length); // 4

这两种方法都可以创建长度为 4 的数组,并且数组中的每个元素都是 undefined。

总结

通过这篇文章,我们深入探索了 JavaScript 中的 new Array(4),了解了它的工作原理以及如何正确使用它来创建指定长度的数组。希望这些知识对您有所帮助,也欢迎您在评论区留下您的见解和问题。