在JavaScript中调用array()作为构造函数时,会返回什么类型的数组?

在JavaScript中调用array()作为构造函数时,会返回什么类型的数组?,javascript,arrays,constructor,Javascript,Arrays,Constructor,为什么数组(42)不能与迭代器一起工作,而数组(42).fill()可以?Array(42)实际上并不填充数组数组(42).fill()使用静态值创建元素即使未将值传递给.fill(),数组也将为每个标记创建元素。这些元素的实际值为未定义,但元素将存在 不能迭代空数组,但可以迭代已填充的数组 Axel Rauschmayer就稀疏数组和密集数组之间的差异写了一篇精彩的博文:@JonKoops不确定这是否与此问题完全相关。这是相关的Array(42)是稀疏数组,而Array(42).fill()是

为什么数组(42)不能与迭代器一起工作,而数组(42).fill()可以?

Array(42)
实际上并不填充数组<代码>数组(42).fill()使用静态值创建元素即使未将值传递给
.fill()
,数组也将为每个标记创建元素。
这些元素的实际值为
未定义
,但元素将存在

不能迭代空数组,但可以迭代已填充的数组


Axel Rauschmayer就稀疏数组和密集数组之间的差异写了一篇精彩的博文:@JonKoops不确定这是否与此问题完全相关。这是相关的
Array(42)
是稀疏数组,而
Array(42).fill()是密集数组。它还解释了稀疏数组不能被迭代。是的,但它不会使连接
.fill()
创建密集数组。它根本不涉及
.fill()
,因此,如果有人问为什么
.fill()
起作用,他就不会从post.OPs中得到关于这个问题的任何信息。问题是为什么数组的某些部分是可写的,而某些部分是不可写的。要回答这个问题,首先必须知道稀疏数组和密集数组之间的区别。