4種實現:1、采用二進制異或的方法來交換數值,語法“a = a ^ b;b = a ^ b; a = a ^ b;”或“a=(b^=a^=b)^a;”;2、利用數組下標來交換,語法“a=[a, b];b=a[0];a=a[1]; ”;3、數組特殊置換法,語法“a = [b, b = a][0]; ”;4、對數組元素進行提取和賦值,語法“[a, b] = [b, a];”。
前端(vue)入門到精通課程:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用
本教程操作環境:windows10系統、ECMAScript 6版、Dell G3電腦。
es6實現兩個變量轉換的4種方法
方法一:異或置換法
方案分析:這里采用二進制異或的方法交換數值。異或的特點:同數為0,異數為1;將用戶輸入的值分別轉換成二進制,在進行異或,JS里面的異或符號是用shift+6,通過兩次異或還是本身這個原理,即可實現兩個數的交換。
注意:其變換形式:a = (b^=a^=b)^a;【一行代碼搞定兩數置換】
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> // 方法一:異或置換法(同數為0,異數為1) var a = prompt('請輸入a的值'); var b = prompt('請輸入b的值'); a = a ^ b; b = a ^ b; a = a ^ b; //a = (b ^= a ^= b) ^ a; //與上面三行實現同理只是變成一行代碼 document.write('交換后a的值是' + a + '<br>', '交換后b的值是' + b); </script> </body> </html>
運行結果:
方法二:數組特殊置換法【進階】
方案分析:這里使用的是特定數組的方法,將兩個數直接轉換,首先假設a=6,b=9則有a=[9,b=a][0]>>>a=[9,b=6][0]>>>a=[9,6][0]>>>b=6>>>a[0]=9>>>a=9。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> // 方法二:數組置換法 var a = prompt('請輸入a的值'); var b = prompt('請輸入b的值'); a = [b, b = a][0]; document.write('交換后a的值是' + a + '<br>', '交換后b的值是' + b); </script> </body> </html>
方法三:數組普通置換法
方案分析:這里使用的是普通數組置換的方法,首先將把a,b的值存放在a[a,b]這個數組中,其次先將a[0]值賦給b,再將a[1]的值賦給a,不這樣會導致a與b的值相等。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> // 方法三:數組普通置換法 var a = prompt('請輸入a的值'); var b = prompt('請輸入b的值'); a = [a, b]; //接收用戶輸入的值 document.write('交換前a,b的值是' + a + '<br>'); b = a[0]; //將第一值賦給b必須寫在a的前面 a = a[1]; //將第二值賦給a document.write(a); document.write(b); </script> </body> </html>
方法四:ES6賦值法
方案分析:這里使用的是ES6置換的方法,由于ES6允許我們對數組和對象提取,所以可以進行變量賦值,來實現兩數直接交換。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> // 方法四:ES6賦值法 var a = prompt('請輸入a的值'); var b = prompt('請輸入b的值'); [a, b] = [b, a]; document.write('交換后a的值是' + a + '<br>', '交換后b的值是' + b); </script> </body> </html>
【