gpt4 book ai didi

Javascript 数组长度行为

转载 作者:行者123 更新时间:2023-11-30 08:08:32 25 4
gpt4 key购买 nike

arr = [1,2,3,4]。如果我设置 arr[x] where x >= arr.lengtharr.length 变为 x + 1 .

这发生在 Firefox 和 Chrome 上。我有两个问题:

  1. 这是定义的行为吗? (欢迎提供来源)
  2. 是否推荐这样做?

谢谢!

最佳答案

Is this defined behavior?

是的,参见 §15.4 of the spec .

Is doing this recommended?

这完全取决于您想要的最终结果。这样做没有错。

你会经常看到像这样构建的数组:

var a = [];
for (/*...some loop over things...*/) {
a[a.length] = /* ...something to put on the array... */;
}

...与以下内容完全相同:

var a = [];
for (/*...some loop over things...*/) {
a.push(/* ...something to put on the array... */);
}

一些 JavaScript 引擎处理 a[a.length] = ... 的速度比 a.push(...) 快(其他引擎则相反)。

请注意,JavaScript 数组稀疏,它们之间可以有间隙,这是造成这种行为的部分原因。 (实际上,JavaScript 数组 aren't really arrays at all。)您可以将 assign 分配给 length 属性。

关于Javascript 数组长度行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com