我有两个变量:

var a = 1,
    b = 2;

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


当前回答

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

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

其他回答

因为我听说这个方法运行得比较慢:

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

如果你计划将你的变量存储在一个对象(或数组)中,这个函数应该工作:

function swapVars(obj, var1, var2){
    let temp = obj[var1];
    obj[var1] = obj[var2];
    obj[var2] = temp;
}

用法:

let test = {a: 'test 1', b: 'test 2'};

console.log(test); //output: {a: 'test 1', b: 'test 2'}

swapVars(test, 'a', 'b');

console.log(test); //output: {a: 'test 2', b: 'test 1'}

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

最简单的形式:

我们可以这样交换var:

var val1 =  117,
    val2 = 327;

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

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

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

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

现在你终于可以做到:

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