前端进阶算法2:从Chrome V8源码看JavaScript数组(附赠腾讯面试题)
简介 数组、链表、栈、队列都是线性表,它表示的结构都是一段线性的结构,与之对应的就是非线性表,例如树、图、堆等,它表示的结构都非线性。 本节主要介绍 JavaScript 数组,在开始本章节前,思考一个问题: 我们知道在 JavaScript 中,可以在数组中保存不同类型值,并且数组可以动态增长,不像其它语言,例如 C,创建的时候要决定数组的大小,如果数组满了,就要重新申请内存空间。这是为什么喃? 本节从 Chrome v8 源码角度回答这个问题,分为四个方面: 数组基础入门 JavaScript 中,数组为什么可以保存不同类型? JavaScript 中,数组是如何存储的喃? JavaScript 中,数组的动态扩容与减容( FastElements ) 下面进入正题吧!(文末有惊喜) 想要更多更快的学习本系列,可以关注公众号「前端瓶子君」和我的「Github:https://github.com/sisterAn/JavaScript-Algorithms」 一、数组(基础) 一种最基础的数据结构,每种编程语言都有,它编号从 0 开始,代表一组连续的储存结构,用来储存同一种类型的数...