我有这两个变量:
var a = 1,
b = 2;
我的问题是如何交换它们?仅限这些变量,而不是任何对象。
我有这两个变量:
var a = 1,
b = 2;
我的问题是如何交换它们?仅限这些变量,而不是任何对象。
ES6 解构赋值:
使用数组: [a, b] = [b, a]; // 我最喜欢的方式
使用对象: {a,b} = {a:b, b:a}; // 也不错
var a = 1, b = 2
a = ({a:b, _:(b=a)}).a;
And
var a = 1, b = 2
a = (_=b,b=a,_);
最后一种方法会暴露全局变量'_',但这不应该成为问题,因为典型的JavaScript惯例是将其用作“不关心”的变量。
a = (_=b,b=a,_);
。 - Alexandre Khoury_
是什么意思?为什么它不需要声明? - day单行交换
a = a^b^(b^=(a^b));
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);
请删除或注释掉两个//or,并使用一组代码运行。
b = (function(){ a=b; return arguments[0]; })(a);
arguments[0]
赋值给变量 a
。 - Ruben Verborghfirst way,
var a = 5, b = 9;
a = a - b;
b = a + b;
a = b - a;
console.log(a, b);
第二种方法
var a = 19, b = 22;
[a, b] = [b, a];
console.log(a, b);
简单明了的回答。
var val1 = 117,
val2 = 327;
val2 = val1-val2;
console.log(val2);
val1 = val1-val2;
console.log(val1);
val2 = val1+val2;
console.log(val2);
在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
var a = 5, b =8;
b = (function(a){
return a
}(a, a=b));
document.write("a: " + a+ " b: "+ b);