交換變量值指的是兩個變量之間的值相互交換,具體的方法可總結出四種
一、使用第三個變量(最簡單,但不推薦)
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
這裏使用一個是數字變量,一個是字母變量的意圖就是要告訴大家,任何數據類型使用這個萬能法都可以轉換,如果大家有疑問,可以自己在控制檯上試試!!
還有什麼方法歡迎大家補充