我有两个变量:

var a = 1,
    b = 2;

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


当前回答

直到ES5,为了交换两个数字,你必须创建一个临时变量,然后交换它。 但是在ES6中,使用数组解构很容易交换两个数字。看到的例子。

let x,y;
[x,y]=[2,3];
console.log(x,y);      // return 2,3

[x,y]=[y,x];
console.log(x,y);      // return 3,2

了解更多关于JavaScript ES6解构的知识

其他回答

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

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

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

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

var a = 1,
    b = 2;

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

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

现在你终于可以做到:

设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);
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/