我有两个变量:

var a = 1,
    b = 2;

我的问题是如何交换它们?只有这个变量,没有任何对象。


当前回答

现在你终于可以做到:

设a = 5; 令b = 10; [a, b] = [b, a];/ / ES6 console.log (a, b);

其他回答

ES6解构:

使用数组:[a, b] = [b, a];//我的最爱

使用对象:{a, b} = {a:b, b:a};//也不错

从ES6开始,你还可以更优雅地交换变量:

var a = 1,
    b = 2;

[a, b] = [b, a];

console.log('a:', a, 'b:', b); // a: 2 b: 1

虽然前面给出了同样的答案,但这里有一个png来描述它。

最简单的形式:

下面是一行代码,假设a和b已经存在,并且需要交换值:

var c=a, a=b, b=c;

正如@Kay所提到的,这实际上比数组方式执行得更好(几乎是数组方式的2倍)。

现在你终于可以做到:

设a = 5; 令b = 10; [a, b] = [b, a];/ / ES6 console.log (a, b);