js交换两个变量的几种方法

js交换两个变量的几种方法

js交换两个变量的几种方法。

使用临时变量

优点:直观,可以用于交换数组元素
缺点:比较low

1
2
3
4
5
let param1, param2, tmp;

tmp = param1;
param1 = param2;
param2 = tmp;

使用es6解构

优点:直观,可以用于交换数组元素

1
[param1, param2] = [param2, param1];

算数运算

缺点:不直观,容易溢出,只能用于数字。

1
2
3
a = a + b;
b = a - b;
a = a - b;

异或运算

优点:能装逼
缺点:不直观,不能交换数组元素

1
2
3
4
5
6
7
8
a = a ^ b;
b = a ^ b;
a = a ^ b;

// 简写
a ^= b;
b ^= a;
a ^= b;

利用数组

优点:能装逼,可以交换数组元素
缺点:不直观

方法一:

1
2
3
a = [a, b];
b = a[0];
a = a[1];

方法二:

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

利用对象

优点:直观,可以交换数组元素

1
2
3
4
5
6
a = {
a: b,
b: a
};
b = a.b;
a = a.a;

评论