小编Din*_*den的帖子

为什么在 JavaScript 中解构数组比解构对象慢?

我已经运行了一些不同的变体,但这是我在 jsbench.me 上进行的基本测试:

https://jsbench.me/j2klgojvih/1

这个初始基准测试具有明显的初始优化,使对象解构速度显着加快。如果将 t 的声明移到每个测试块中,底层优化就会消失,但数组解构仍然会丢失。

该测试是一个简单的概念,表示为:

const t = [1, 2, 3];

// Test 1 (Slower)
const [x, y, z] = t;

// Test 2 (Faster)
const {0: x, 1: y, 2: z} = t;
Run Code Online (Sandbox Code Playgroud)

我认为 V8(或任何 JS 引擎)可以/应该更快地运行数组解构;然而,在这种情况下,我无法对测试进行改变。

如果我要猜测其推理,那就是数组解构运行一些迭代器来循环数组。

javascript optimization v8 destructuring micro-optimization

5
推荐指数
1
解决办法
2685
查看次数