背景
今天在学习JS的数组时,发现JS的数组可以存放不同类型的元素、并且数组长度是可变的。what??这跟我之前接触的数组不一样啊。数据结构中定义的数组都是定长的、数据类型一致的存储结构。JS中的数组竟然如此特殊,这也是为什么标题中数组二字加上了“”的原因。带着一脸的懵逼,打开搜索引擎,一探究竟。
目录:
什么是数组
首先来看维基百科中对于数组的定义:这里有两个关键的点,相同类型、连续内存。
下面来看数组在内存中的表现形式:在数据结构,C、C 、Java等语言中的数组,是在内存中划分一串连续的固定长度的区域存放一组相同的基本数据类型的值。这里面涉及到了几个重要的概念,连续、固定长度、相同类型、基本数据类型。
连续
连续空间是数组的特点,区分于链表类型的数据结构,这使得它的空间可以只用来存放值,而不需要像链表一样划分空间来存储指针。随机遍历的速度快。