【问题标题】:How to understand this syntax? [a, b] = [b, a]?如何理解这种语法? [a, b] = [b, a]?
【发布时间】:2019-03-08 03:02:35
【问题描述】:

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

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

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

到这里:

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

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

【问题讨论】:

标签: javascript


【解决方案1】:

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

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

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 编程场景,任何一种方法都可以。

如果您正在编写代码以提高性能,您目前希望使用临时变量。

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 2021-11-28
    • 1970-01-01
    • 2014-03-29
    • 2011-05-01
    • 2019-12-28
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多