本文主要讲解怎么提高展开运算的性能,在此之前先简单说说展开运算在数组中的工作原理。...展开运算符可以放在数组中的任何位置:
const numbers = [1, 2, 3];
[0, ...numbers]; // => [0, 1, 2, 3]
[0, ...numbers,...4]; // => [0, 1, 2, 3, 4]
[...numbers, 4]; // => [1, 2, 3, 4]
现在有一个有趣的问题,展开运算符在数组中的位置是否可以提高性能?...3.快速路径优化( fast-path optimization)
启动V8引擎的 7.2版本(为Chrome中的JS执行提供支持),可以对展开运算符进行新的优化:快速路径优化。...然后,引擎读取扩展数组的长度,只为结果数组分配一次内存。然后传递展开数组的索引,将每个元素添加到结果数组中。
快速路径优化会跳过迭代对象的创建,只为结果分配一次内存,从而性能提高。