js交换两个变量的值

284 阅读1分钟

看到一些其他语言关于交换两个变量值的问题,特地总结了一下适合js交换两个变量的方法及优缺点。

1,借助第三方变量

优点:适用于各种类型的值
缺点:需要借助第三方变量

let m = 12;
let n = 5

let k = m;

m = n; //m=5,n=5
n = k; //m=5,n=12

2,运算符

优点:不用借助第三方变量
缺点:两数相加可能超出数字范围,仅适用于数字

let m = 12;
let n = 5

m = m + n; //m=17,n=5
n = m - n; //m=17,n=12
m = m - n; //m=5,n=12

3,异或

优点:不用借助第三方变量
缺点:仅适用于数字

let m = 12;
let n = 5

m = m ^ n; //m=9,n=5
n = m ^ n; //m=9,n=12
m = m ^ n; //m=5,n=12

4,解构

优点:不用借助第三方变量,适用于各种类型的值
缺点:旧版本浏览器不兼容

let m = 12;
let n = 5

[n, m] = [m, n]; //m=5,n=12