這個問題看似很基礎,可是有不少的實現方式,你知道的有多少呢,網上也有不少的方法,下面就來總結一下javascript
臨時變量其實很好理解,經過一箇中間變量進行交換值
var strA = "a"; var strB = "b"; var strC;//中間變量 # 開始 strC = strB;//strC值是b strB = strA;//此時strB已經變成strA strA = strC;//讓strA賦值strB的值
var a=2,b=3; 加法算: a +=b;//a=5,b=3 b =a-b;//b=2 a =a-b;//b=3 減法算: a +=b;//a=5 b = a-b;//b=2; a -=b;//a=3 兩種方法都須要兩個值相加,而後作對於的加減算
var a="1",b="2"; 對象的方法: 先把a變成一個對象,即a={a:b,b:a} b=a.a;//1 a=a.b;//2 數組的方法: 數組其實和對象的思想差很少 a=[a,b]; b=a[0]; a=b[1];
公式:a=[b,b=a][0] var a="1",b="code"; a=[b,b=a][0];//這樣就成功了 console.log(a,b);//code 1
ES6的解構賦值php
什麼是解構賦值?
解構賦值容許你使用相似數組或對象字面量的語法將數組和對象的屬性賦給各類變量。這種賦值語法極度簡潔,同時還比傳統的屬性訪問方法更爲清晰。java
數組與迭代器的解構
語法:[ variable1, variable2, ..., variableN ] = array; 這將爲variable1到variableN的變量賦予數組中相應元素項的值
能夠去看看解構的賦值:http://es6.ruanyifeng.com/#docs/destructuringes6
let a = "one",b = "two"; [a, b] = [b, a]; console.log(a, b);//two one
var a=1,b=2; a=(function(){; try{return b} finally{b=a}} )(); 或字符串 var a = "aaa", b = "bbb"; a = (function() {; try { return b } finally { b = a } })(); console.log(a, b);
var a = 1; // 二進制:0001 var b = 2; // 二進制:0010 a = a ^ b; // 計算結果:a = 0011, b = 0010 b = a ^ b; // 計算結果:a = 0011, b = 0001 a = a ^ b; // 計算結果:a = 0010, b = 0001 本身能夠動手試一下 例子: var a = 0; var b = 1; a = (b = (a ^= b) ^ b) ^ a; console.log(a,b) 例子: var a = 0; // 二進制:0001 var b = 1; // 二進制:0010 a ^=b; b ^=a; a ^=b; console.log(a,b)
var arr = [item0,item1,...,itemN]; //最初使用這段代碼來交換第0個和第K(k<N)個元素 arr[0] = arr.splice(k, 1, arr[0])[0]; var arr = [1,2,3,"aaa","bbb","ccc"]; arr[0] = arr.splice(3, 1, arr[0])[0]; console.log(arr.toString())//aaa,2,3,1,bbb,ccc