gpt4 book ai didi

javascript - 为什么要在 "new Array(arrayLength)"中设置 arrayLength?

转载 作者:行者123 更新时间:2023-11-29 18:07:29 25 4
gpt4 key购买 nike

例如:

array1 = new Array(5); array2 = new Array(10);

console.log(array1)console.log(array2) 都会返回 []。那么这里arrayLength的作用是什么?

最佳答案

JavaScript 隐藏了许多您在使用许多其他语言的数组时通常必须处理的细节。例如,JavaScript 中的数组可以在您向其推送值时自动增长。

然而,在幕后,运行时仍在处理 C 或 Java 等语言让开发人员可见的内存分配问题。运行时可能会留出一些额外的内存供数组增长,然后一旦它用完了连续的内存空间,它就会在其他地方重新分配一 block 更大的内存,并从第一组内存中复制所有值到另一个位置。

(这大大简化了事情,但希望您能理解总体思路。)

如果您提前确切知道可以将多少项放入数组中,使用 new Array(number) 将向运行时提示它可以从分配那么多内存开始,并避免随着内存的增长而重新分配和复制内存。

在这种情况下,例如,this page建议采用以下做法以在 V8 javascript 引擎中实现最佳性能:

  • 不要预先分配大数组(例如 > 64K 元素)到它们的最大大小,而是随着你的增长而增长
  • 为固定大小的小数组使用数组文字进行初始化
  • 在使用前预先分配小数组 (<64k) 以修正大小

关于javascript - 为什么要在 "new Array(arrayLength)"中设置 arrayLength?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30224943/

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