Tho*_*son 5 processing-efficiency ecmascript-6
ES6 支持数组解构,它可用于以如下简洁的语法交换变量,但这是否有效并建议在性能敏感的代码中作为数组处理?因为似乎需要一个新的临时数组来完成这个操作。
[a, b] = [b, a]
Run Code Online (Sandbox Code Playgroud)
我们来测试一下!
let a = 42
let b = 69
console.log("for 2000000 iterations");
console.time("deconstruct")
for(let i=2000000; i>=0; --i)
[a, b] = [b, a];
console.timeEnd("deconstruct")
console.time("classical")
for(let i=2000000; i>=0; --i) {
let tmp = a
a = b
b = tmp
}
console.timeEnd("classical")Run Code Online (Sandbox Code Playgroud)
所以这似乎不是更好的方法。