交换变量值指的是两个变量之间的值相互交换,具体的方法可总结出四种
一、使用第三个变量(最简单,但不推荐)
var a=3;
var b=5;
var t=a;
b=a;
b=t;
console.log(a); //5
console.log(b); //3
二、使用位运算异或(只能进行数字的交换)
公式: a^=b b^=a a^=b
异或:只有其中一个是1,另一个是0,最终才是1,否则为0
var a=3;
var b=5;
3的二进制:011
5的二进制:101
a^=b:
011
101
-------
110 a变成了110,b还是101
b^=a:
101
110
-----
011 a还是110,b变成了011
a^=b:
110
011
-----
101 a变成了101,b还是011
最终结果是a是101(5),b是011(3)
三、做加减(只针对数字)
公式: a+=b b=a-b a-=b
var a=3;
var b=5;
a+=b:
a=3+5=8 a变成8,b还是5
b=a-b:
b=8-5=3 a还是8,b变成3
a-=b:
a=8-3=5 a变成5, b还是3
最终a是5,b是3
四、万能法(任何数据类型都可以转换,推荐使用)
公式:a=[b,b=a][0]
var a=3;
var b=aa;
第一步:
a=[aa,b=a][0] 将b=aa套入
第二步:
a=[aa,3][0] 将b=a=3套入,注意不改变前面b=aa的值
第三步:
[0]指的是将数组[aa,3]第一个元素的值传给a
aa=[aa,3][0]
最终结果a为aa,b为3
这里使用一个是数字变量,一个是字母变量的意图就是要告诉大家,任何数据类型使用这个万能法都可以转换,如果大家有疑问,可以自己在控制台上试试!!
还有什么方法欢迎大家补充