我的问题是,如果在javascript中,我创建一个数组a = [2, 3, 4, 5]
并键入a[5] = 10
然后a.push(5)
然后编译器将5添加到数组的结尾或第一个未定义的点?
我发现它添加到数组的末尾,即a[6] == 5
。但后来我的问题是编译器如何找到一个数组已经结束?当然,如果数组识别出未识别的值,则无法确定数组是否已结束,因为数组将在值5之后结束。那么,它是如何知道数组已经结束的呢?
答案 0 :(得分:2)
推送操作推送从a[a.length]
开始的值,这会导致数组增长 N 项(在上述示例中为1)。
长度由最大的使用索引确定,因此在您的示例[5]
中,如果最大索引,则6是长度。