JavaScript交换两个变量值的四种方法

来源:互联网 发布:dota2比赛数据统计 编辑:程序博客网 时间:2024/05/04 19:05

交换变量值指的是两个变量之间的值相互交换,具体的方法可总结出四种


一、使用第三个变量(最简单,但不推荐)

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

这里使用一个是数字变量,一个是字母变量的意图就是要告诉大家,任何数据类型使用这个万能法都可以转换,如果大家有疑问,可以自己在控制台上试试!!


还有什么方法欢迎大家补充





0 0
原创粉丝点击