目录
一、算数运算
利用算数的特性将两个值互换,缺点:只适合数字类型,容易出现精度丢失
let x = 1, y = 2;
x = x + y; // x = 3
y = x - y; // y = 3 - 2
x = x - y; // x = 3 - 1
console.log(x, y); // 1 2
二、异或运算
利用位运算实现交换,缺点:只适合整数
let x = -2, y = 1;
x ^= y; // x = 0011, y = 0010
y ^= x; // x = 0011, y = 0001
x ^= y; // x = 0010, y = 0001
console.log(x, y); // 1 2
三、利用JS弱类型
利用JS弱类型特性,数组、对象都可以
let x = 2, y = 1;
x = [x, y]; // x = [2, 1]
y = x[0]; // y = 2
x = x[1]; // x = 1
console.log(x, y); // 1 2
let x = 2, y = 1;
x = { x, y }; // x = {x: 2, y: 1}
y = x.x; // y = 2
x = x.y; // x = 1
console.log(x, y); // 1 2
四、ES6解构
利用ES6解构,方便快捷
let x = 2, y = 1;
[x, y] = [y, x]; // x = 1 y =2
console.log(x, y); // 1 2
五、工作中常用
搞得花里胡哨的干啥
let x = 2, y = 1, temp;
temp = y; // temp = 1
y = x; // y = 2
x = temp; // x = 1
console.log(x, y); // 1 2
版权声明:本文为qq_27829333原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。