我已经运行了一些不同的变体,但这是我在 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 引擎)可以/应该更快地运行数组解构;然而,在这种情况下,我无法对测试进行改变。
如果我要猜测其推理,那就是数组解构运行一些迭代器来循环数组。