JS中 数组与链表

JavaScript014

JS中 数组与链表,第1张

常规数组: 数组元素内容是一种类型的元素,如const arr = [1,2,3,4],在存储空间是连续内存的

JS数组: 数组元素内容不是同一种类型的元素,如const arr = ['haha', 1, {a:1}],则在存储上是一段非连续空间。此时,JS 数组不再具有数组的特征,其底层其实是由链表来实现的

总结

链表的插入/删除效率较高,而访问效率较低;

数组的访问效率较高,而插入效率较低

Js array被认为是一种万能的数据结构,不仅能当作普通的数组来使用,还可以当作一个栈,一个队列,一个哈希表来使用,更多的时候我们只是把它当作一个数组来使用,所以就先从最熟悉的使用场景来回顾下它.

更多操作

源码中描述,数组实现时有两种模式: fast 快模式,slow 慢模式

快模式:内存是连续的,需要开辟一块相对较大点的内存使用

慢模式:内存是分散的

总的来说就是快模式下通过牺牲内存换取性能,慢模式下是通过牺牲性能获取内存,这就是时间换空间、空间换时间的平衡,看谁划算了.

elements变成了一个慢元素哈希表,哈希表的容量为29。

var sc=new Array()就这样sc[0] = "素材\阶段4\content1.jpg"

sc[1] = "素材\阶段4\content2.jpg"

sc[2] = "素材\阶段4\foot.jpg"你写的对