如何理解这种语法? [a,b] = [b,a]?

时间:2019-03-08 03:02:35

标签: javascript

从某种意义上说,我知道这可能是es6中的一种语法,它更改了ab的位置, 但是我想知道面向Web的程序员是否优雅?并且是否有必要替换中间变量,例如:

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

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

对此:

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

它们之间在性能上有什么区别?

1 个答案:

答案 0 :(得分:1)

这都是交换变量的有效方法。

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

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编程方案而言,这两种方法都可以。

如果您要编写一些性能代码,则当前需要使用temp变量。