交换两个变量的方法

169 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情

目录

1.使用辅助变量

2.1最简单的方法 - es6中的解构

2.使用^运算符

3.数值加减

4.数值乘除

5.特殊方法


1.使用辅助变量

<script>
    let a = 1
    let b = 2
    // temp 辅助变量
    let temp 
    temp = a
    a = b
    b = temp
    console.log(a);
    console.log(b);
  </script>

定义一个temp 先把a的值赋给temp,这时temp为1,a就为空,这时把b的值赋给a,a就为2了,这时把temp为1的值赋给b,b就为1

交换变量最常用的就是temp辅助变量,这使用第三方存储数据来完成的,那,不使用第三方存数据该怎么完成呢?

因此就有以下四种方法:四种方法中的数值加减,跟乘除原理都是相同的,看容易弄懂 

新增一种方法 es6中的解构方法

<script>
    let a = 3;   
    let b = 2;
    [a,b] = [b,a]
    console.log(a,b);  // 2,3
  </script>

注意  :     let  a  =  xxx ;     一定要加分号否则报错

2.使用^运算符

 <script>
    let a = 1   
    let b = 2
    a = a ^ b   //01 ^10 = 11 
    b = a ^ b   //11 ^10 = 01  1
    a = a ^ b   //11 ^01 = 10  2
    //1的二进制为01  2的....为10  3的...为11
    console.log(a);  // 2
    console.log(b);  // 1
  </script>

3.数值加减

主要是先求和,求出最大值后,利用最大值去减,去进行转换

<script>
    let a = 3   
    let b = 2
    a = a + b   // 
    b = a - b   //
    a = a - b   //
    //求和 减值
    console.log(a);  // 2
    console.log(b);  // 3
  </script>

4.数值乘除

乘除跟加减的思路是相通的

<script>
    let a = 3   
    let b = 2
    a = a * b   // 
    b = a / b   //
    a = a / b   //
    //既有加减 那肯定有乘除
    console.log(a);  // 2
    console.log(b);  // 3
  </script>

5.特殊方法

 <script>
    let a = 3   
    let b = 2
    a = b + (b = a)*0
    console.log(a);  // 2
    console.log(b);  // 3
  </script>