夜下客

繁体版 简体版
夜下客 > JS修炼法则 > 第21章 由数组切入V8元素种类

第21章 由数组切入V8元素种类

填充。

创建数组的更好方法是使用数组字面量初始化。

const array = ['a', 'b', 'c'];

// PACKED_ELEMENTS

如果不能提前知道所有值,可创建一个空数组,然后push将值添加到它。

const array = [];

array.push(someValue);

array.push(someOtherValue);

这种方法可确保数组永远不会转换为空洞数组。

因此,V8 可以潜在地为这个数组上的一些操作生成更快的优化代码。

六.总结

空洞数组: 预先分配容量,但数组操作相对较慢,因要处理额外的空洞逻辑

密集数组: 无空洞,但初始化需付出多次扩容代码。长度为9001的数组,初始化时需扩容16次。

翻译 Elements kinds in V8

『加入书签,方便阅读』