交换两个变量的值 你有几种方法

1.借助第三变量

/ 声明变量a和b
let a = 5
let b = 4
// 1. 临时将变量a的值赋值给变量tmp
let tmp = a
// 2. 将变量b的值赋值给a
a = b
// 3. 将变量a的值(tmp的值)赋值给b
b = tmp

console.log(a) // 4
console.log(b) // 5

2.不借助第三变量 --es6变量的解构赋值

let a = 5;
let b = 4; // 请注意此位置的分号;是一定要存在的呀

// 数组结构赋值,交换变量a,b的值
[a, b] = [b, a]

console.log(a) // 4
console.log(b) // 5

3.不借助第三变量 --数学运算

let a = 5
let b = 4

// 二者之和
a = a + b //a值为 5+4=9
// 二者之和 - b的值,剩余a的值赋值给变量b
b = a - b //b值为 9-4=5
// 此刻a还是二者之和,a - b此刻相当于二者之和 - 变量b(a的值),那么此刻剩余的就是变量b的值,赋值给a变量
a = a - b //a值为 9-5=4

console.log(a) // 4
console.log(b) // 5

4.不借助第三变量 - - 借助位运算符

let a = 5 // 0101
let b = 4 // 0100

// 按位移或运算
a = a ^ b // 0101 ^ 0100 ===> 0001,此时a的值为1
b = a ^ b // 0001 ^ 0100 ===> 0101,此时b的值为5
a = a ^ b // 0001 ^ 0101 ===> 0100,此时a的值为4

console.log(a) // 4
console.log(b) // 5

 

posted @ 2021-11-29 17:28  lijjj  阅读(217)  评论(0编辑  收藏  举报