JavaScript数组内部内存组织

JavaScript数组内部内存组织,javascript,arrays,memory-management,Javascript,Arrays,Memory Management,来自Java和C,我对数组的理解是它们占用内存中的线性空间,因此调整数组的大小是有问题的,实现可调整大小的数组的唯一方法是创建一个更大的数组并复制所有元素,或者创建一个更大的数组以备将来使用 现在,JavaScript数组是动态的,但我不知道当数组大小改变时,分配的内存会发生什么变化 const fruits = ["Apple","Orange","Banana"]; 据我所知,有3个单位的连续内存被占用。现在如果我做水果。推(“猕

来自Java和C,我对数组的理解是它们占用内存中的线性空间,因此调整数组的大小是有问题的,实现可调整大小的数组的唯一方法是创建一个更大的数组并复制所有元素,或者创建一个更大的数组以备将来使用

现在,JavaScript数组是动态的,但我不知道当数组大小改变时,分配的内存会发生什么变化

const fruits = ["Apple","Orange","Banana"];
据我所知,有3个单位的连续内存被占用。现在如果我做
水果。推(“猕猴桃”),它向数组中添加一个新元素。现在我不明白如何调整内存大小以添加新元素。JavaScript是否实现了动态内存分配,并且只将新的内存块链接到描述数组的前一个内存块


我在某个地方读到JavaScript将一切都视为对象。因此,即使它确实将数组视为一个对象,当大小发生变化时,底层内存结构会发生什么变化?

据我所知,Javascript实现了动态内存分配。如果继续在数组中添加值,它将继续根据插入的值分配内存


与基于Java静态的变量和方法不同,Javascript的工作方式不同。

如果您的背景是C语言,那么请随意阅读v8@Holp中如何处理数组。我是Javascript的绝对初学者。我试着理解代码,但理解的不多,我的问题仍然没有答案。