其中 是存储在 Javascript 内存中的数组



我们知道对象存储在堆区域中。

假设我们在一个功能块内,我们在其中声明:

var a=[1,2] 

var b=new Array(1,2)

两个数组对象都存储在堆上,还是a堆栈区域中有空间,b堆上?

无论您使用数组初始值设定项(又名"数组文字",[1, 2](还是Array构造函数(new Array(1, 2)(创建数组,数组的存储位置都没有区别。

重新存储阵列的位置:

这取决于 JavaScript 引擎的实现,因此可能因实现而异。

一些高级引擎使用转义分析来确定在哪里分配对象,包括数组,这意味着它们可以在堆栈上分配,也可以在堆上分配,这取决于引擎是否看到它们是函数的本地还是它们转义函数(例如,通过返回,或分配给函数关闭的变量, 等(。


旁注:几乎没有任何理由使用new Array

最新更新