长度不同于零的空数组.你能解释一下吗?


var myNumb = 5;
var myArr = Array(myNumb);
console.log(myArr.length); // 5
console.log(myArr[0]) // undefined, as well as for myArr[1] myArr[2] myArr[3] myArr[4]

这些行创建一个长度为 5 的数组myArray,但它也被称为"空数组",实际上myArr[0]undefined,例如。

我不明白怎么可能有一个长度不同于零的空数组。如果数组没有项目,它的长度怎么可能不同于零?

数组

中的位置仍然存在,即使它们没有值,它们也是空的。假设您有以下代码:

var myArray = new Array(5);
myArray[4] = 'Hello';

你希望'Hello'处于位置 0 还是 4?答案当然是4。数组的长度为 5,即使索引 0 到 3 为空,索引 4 也有一个值。

根据 MDN 文档,使用 Array 构造函数会产生以下内容:

如果传递给 Array 构造函数的唯一参数是整数 在 0 和 (2^32)-1(含)之间,这将返回一个新的 JavaScript 数组 其长度属性设置为该数字(注意:这意味着 arrayLength空插槽数组,而不是实际未定义的插槽 值)。如果参数是任何其他数字,则RangeError异常 被扔了。

JavaScript 数组

相关内容

最新更新