首页 > 解决方案 > Array.push() 方法在 Javascript 中是如何工作的?

问题描述

当我参加在线 CS 课程时,主题是关于数组和内存如何工作的概述,并且老师使用 C 作为示例,因为当数组已经充满元素时,您不能简单地向现有数组添加额外的元素。作为一个开始接触 JavaScript 的初学者,虽然我知道 JavaScript 是一门高级语言,而且 Array.push() 对我来说已经是一个熟悉的函数,但是出于好奇,我似乎不适合这样的上下文,我已经通过 google 和 StackOverflow 进行了搜索,我只是没有看到人们讨论为什么 JavaScript 可以将额外的元素添加到现有的数组中。

JavaScript 是否只是创建一个带有添加元素的新数组并将我已经分配给新数组的变量指向新数组或其他东西?

标签: javascriptarrays

解决方案


javascript 中的数组与 C 中的数组不同。在 C 中,您将分配一个具有类型和固定大小的新数组,如果您想更改大小,则必须创建一个新数组。另一方面,对于 javascript 数组,如果您查看MDN 上的数组描述,您会看到这一行。

数组是类似列表的对象,其原型具有执行遍历和变异操作的方法。JavaScript 数组的长度及其元素的类型都不是固定的。由于数组的长度可以随时更改,并且数据可以存储在数组中的非连续位置

因此,虽然它被称为“数组”,但它更像是一个列表,可以让您自由调整它的大小(并且还可以存储任何东西,因为 javascript)。

还有另一个关于 SO 上的 push/pop 方法的语义的问题,可以更清楚地说明这些问题:Javascript Array Push 代码如何在内部工作


推荐阅读