我的问题是,如果在javascript中,我创建一个数组a = [2, 3, 4, 5]
并输入 a[5] = 10
,然后a.push(5)
编译器将数组的末尾添加5或第一个未定义的位置?
我发现它增加了数组的末尾,就是这样a[6] == 5
.但后来我的问题是编译器如何找到一个数组已经结束?当然,如果数组识别出未识别的值,则无法确定数组是否已结束,因为数组将在值5之后结束.那么,它是如何知道数组已经结束的呢?
MDN摘要Array.prototype.push()
:
该
push()
方法将一个或多个元素添加到数组的末尾,并返回数组的新长度.
它知道结束的位置,因为length
数组的数值总是在数值上大于数组中的最高索引.
var a = [1, 2, 3];
a[49] = 4;
document.write(a.join(" - "));
document.write("
");
document.write("Array length: " + a.length);
document.write("
");
a.push(5);
document.write("
");
document.write(a.join(" - "));
document.write("
");
document.write("Array length: " + a.length);