js数组的底层实现

79 阅读1分钟

《用得上的前端知识》系列 - 你我都很忙,能用100字说清楚,绝不写万字长文

基本概念

散列表:英文名为 Hash table,也叫哈希表,是根据键(Key)而直接访问在内存存储位置的数据结构;

快速组:一种线性的存储方式,基于下标就能快速访问数据,也就是我们传统意义上的数组;

慢数组:一种哈希表的内存形式。

底层实现

数组是一个特殊的对象,内部是 key-value 的存储形式。

  • 新创建的空数组,默认的存储方式是快数组;
  • 数组在声明的时候如果元素类型不一致时,数组将被转换成慢数组;
  • 数组中空元素的个数大于 1024 时,数组会被转换为慢数组。

参考资料