我有两个变量:

var a = 1,
    b = 2;

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


当前回答

现在你终于可以做到:

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

其他回答

我们可以这样交换var:

var val1 =  117,
    val2 = 327;

val2 = val1-val2; 
console.log(val2);
val1 = val1-val2;
console.log(val1);
val2 = val1+val2;
console.log(val2);

ES6 (Firefox和Chrome已经支持它 数组匹配)):

设a = 5, b = 6; [a, b] = [b, a]; console.log(“${一}$ {b}”);

let a = 2, b = 4;
[b, a] = [a, b];

更详细的方法是

let a = 2, b = 4;
a = [a, b];
b = a[0];
a = a[1];

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

var a = 1,
    b = 2;

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

console.log('a:', a, 'b:', b); // a: 2 b: 1
var a = 5;
var b = 10;

b = [a, a = b][0];
//or
b = [a, a = b];
b = b[0];

//or
b = [a, b];
a = b[1];
b = b[0];


alert("a=" + a + ',' + "b=" + b);

删除或注释2 //or并使用一组代码运行

http://jsfiddle.net/USdv8/57/