首页 > 解决方案 > 如何理解这种语法?[a, b] = [b, a]?

问题描述

从某种意义上说,我知道它可能是来自 es6 的语法,它改变了 and 的位置ab但我想知道它对 web 前端程序员来说是否优雅?是否有必要替换中间变量,例如:

var a=3,b=5;
var temp;

temp = a;
a = b;
b = temp;

对此:

var a = 3,b = 5;
[a,b] = [b,a];

他们在性能上有什么区别?

标签: javascript

解决方案


两者都是交换变量的有效方式。

解构需要更少的代码,可以被认为是一种更优雅的方法,但它目前看起来比使用临时变量要慢:

const startTempVariable = new Date();
for (let i = 0; i < 100000000; i++) {
  var a=3, b=5;
  var temp;
  temp = a;
  a = b;
  b = temp;
}
console.log(`temp variable: ${new Date() - startTempVariable}ms`);

const startDestructuring = new Date();
for (let i = 0; i < 100000000; i++) {
  var a=3, b=5;
  [a,b] = [b,a];
}
console.log(`destructuring: ${new Date() - startDestructuring}ms`);

不过,这两种方法都非常快,因此对于大多数 Web 编程场景,任何一种方法都可以。

如果您正在为性能编码一些东西,您目前希望使用临时变量。


推荐阅读