跳到主要内容

数组

前端的数组其实不是真正意义上的数组,用过就知道数组长度不固定,每一项可以存不同类型的数据,这和数据结构中定义数组的特点是不同的。

数据结构中的数组​

定义:一个固定长度的连续的内存空间

特性:

  1. 整个数组占用的内存空间是连续的
  2. 数组中的元素数量是固定的(不可增加也不可减少),数组在创建时就要制定长度
  3. 每个元素占用的内存大小是完全一样的
  4. 数组变量指向第一个元素的地址

image.png 优点:

  • 通过数组下标(偏移量)查询效率高,遍历速度快

缺点:

  1. 当内存空间碎片太多,连续的数组内存可能存不下
  2. 数组的长度固定,因此要对数组进行增删是很麻烦的,需要额外的申请内存空间,增加内存的开销和时间开销

JS 中的数组​

js 中没有真正意义上的数组,所谓的 Array,其本质上是一个链表,这样也就能解释得通。 不过在 ES6 之后,出现了真正的数组,叫类型化数组,比如 int8Array ,但是只能存储数字。所以功能有限