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電腦。
方法一:互斥或置換法
方案分析:這裡採用二進位制互斥或的方法交換數值。互斥或的特點:同數為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>
登入後複製
【相關推薦:、】
以上就是使用es6怎麼實現兩個變數的轉換的詳細內容,更多請關注TW511.COM其它相關文章!