这篇文章总结了七种办法来交换a和b的变量值

1

2

var a = 123;

var b = 456;

交换变量值方案一

最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了

1

2

3

4

var t;

t = a;

a = b;

b = t;

首先把a的值存储到临时变量中,然后b赋值给a,最后拿出临时变量中的a值赋给b,这个办法是最基本的了

交换变量值方案二

下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有关系的值,这样可以先改变另一个变量值, 最后改变原修改的变量值

比如这个

1

2

3

a += b;

b = a - b;

a -= b;

让a先变成a与b的‘和'(也可以换成a和b的差,一样的) ,‘和'减去b巧妙的得到了a的变量值赋予b ,再通过‘和'减去a的值得到了b的值赋予a,或者是下面的变式(差的形式)

1

2

3

a -= b;

b = a + b;

a = b - a;

但是感觉和的形式更容易理解

交换变量值方案三

这种方法对于第一次学习JavaScript的同学来说可能不了解,因为我们JavaScript很少会用到位操作,这是我在以前看算法竞赛书的时候学来的,通过底层位运算来进行交换变量值,也是上面的方案演化来的

1

2

3

a ^= b;

b ^= a;

a ^= b;

了解一下吧,C++甚至可以a^=b^=a^=b来完成任务,但我发现JavaScript不可以

不过我们可以这样

1

a = (b^=a^=b)^a;

交换变量值方案四

把a先变成了一个对象,这个对象保存着应该交换后的键值对,最后赋值搞定

1

2

3

a = {a:b,b:a};

b = a.b;

a = a.a;

交换变量值方案五

和上面的方法很像,只不过对象换成了数组

1

2

3

a = [a,b];

b = a[0];

a = a[1];

交换变量值方案六

这个办法十分的巧妙,不是我想出来的,想出来的人一定是大神,除非他是托梦想出来的,简单粗暴一行代码交换了a和b的变量值

1

a = [b,b=a][0];

根据运算符优先级,首先执行b=a,此时的b直接得到了a的变量值,然后一步数组索引让a得到了b的值(简直不能再厉害)

交换变量值方案七

最后我的方案是利用了ES6的解构赋值语法,它允许我们提取数组和对象的值,对变量进行赋值,不过我现在测试用的chrome浏览器已经实现了

1

[a,b] = [b,a];

可以看到解构赋值语法让我们的交换变量值变得超级简单,这个解构赋值语法要是讲的话要讲很多不是今天的重点,以后会在再总结现在就不讲了

总结

本文提到了这么多交换变量值的方法,不知道还有没有其他办法,虽然它是一个无关紧要的问题,不过可以练一练我们的脑洞。希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

JavaScript交换两个变量值的七种解决方案相关推荐

  1. 用html5交换两个变量的值,JavaScript交换两个变量值的七种解决方案

    前言 这篇文章总结了七种办法来交换a和b的变量值 var a = 123; var b = 456; 交换变量值方案一 最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了 ...

  2. python中交换两个变量值的几种方式?

    python中交换两个变量值的几种方式 1.python中独有的,也是最简单的方式: a,b=b,a 2.引入第三个变量,可以看作两个装满牛奶的瓶子a和瓶子b,如果我想交换这两个瓶子中的牛奶,就需要一 ...

  3. 交换两个变量值的几种方法-C语言初学者

    1.借用一个中间变量交换两个变量 #include<stdio.h> int main() {int i=0;int j =0;int n = 0;printf("请输入两个要交 ...

  4. 交换两个变量值的几种方法;

    1.借用一个临时值交换两个变量: #include <stdio.h> int main() {int num1 = 5;int num2 = 8;int temp;//申请一个临时变量p ...

  5. 交换两个变量值的四种方法

    面试题: 交换两个变量的值 int a = 10; int b = 20; 方案A:使用第三方变量(开发中使用) int c = a; a = b; b = c; 方案B:用异或的特点实现(面试使用) ...

  6. 交换两个变量值的三种方法

    文章目录 交换两个变量的值的方法 方法1:定义临时变量 方法2:采用加减操作来实现交换 方法3:利用异或运算符进行操作 交换两个变量的值的方法 方法1:定义临时变量 public class Test ...

  7. C++交换两个变量值的方法

    简单地列一下交换两个变量值地几种方法. 1.通过第三方实现,这一种也是最最最常见普通的方法: void swap(int *a, int *b) {int tmp = *a;*a = *b;*b = ...

  8. RUNOOB python练习题47 交换两个变量值

    用来练手的python练习题,原题链接: python练习实例47 题干: 两个变量值互换 在C语言C++中我们要构造一个能交换两个变量值的函数很方便,我们可以使用指针,或者C++中的引用.那么在没有 ...

  9. 7-利用函数交换两个变量值的方法

    利用函数交换两个变量值的方法 1.利用一个中间变量 void Swap(int *p1,int *p2) {int temp=0;//定义一个中间变量temp=*p1;//把a的值赋给中间变量*p1= ...

最新文章

  1. Kotlin 函数的问题
  2. oracle 10.2 64位,Oracle 10.2.0.5 x64升级到11.2.0.3 x64
  3. 最新 crtmpserver 源码的获取方法
  4. 雷军 1994 年写的代码,经典老古董~
  5. JDBC访问数据库的基本程序
  6. C++语言程序设计之关联容器类型
  7. 通过printf设置Linux终端输出的颜色和显示方式
  8. mybatis.net mysql_ADO.NET与ORM的比较(5):MyBatis实现CRUD
  9. 做完系统回来计算机连接不上网络,重装系统后电脑连不上网怎么回事
  10. 深入解析Python中函数的参数与作用域
  11. 创建和应用Java包文件的两种方式(转)
  12. Git常用命令——分支操作
  13. zookeeper3.5.x版本启动报错java.io.IOException: No snapshot found, but there are log entries.解决
  14. 软件开发角色知识概括
  15. ubuntu-20.04.3-详细安装教程(图文)附下载地址
  16. 计算机网络 | 应用层
  17. [java/初学者] 猜测随机数字的大小
  18. 谷歌浏览器离线安装crx插件方法
  19. C++学习日记——头文件的编写
  20. 小白学 Python 爬虫(26):为啥上海二手房你都买不起

热门文章

  1. 目前有哪些前沿的肿瘤治疗方法正在研究?
  2. 块存储、文件系统存储以及对象存储的特性及其应用
  3. 使用Win32 API获得端口占用列表并关闭对应进程
  4. 【电路第三章】电路中的一般分析方法
  5. CGRP通过破坏mTOR-Raptor相互作用促进癌症进展 - MedChemExpress
  6. Jetpack Compose自定义绘测 画太阳
  7. 宇视智能锁门禁服务器,宇视智能锁价格
  8. CSV 转 JSON
  9. 后端 Long类型,超过 js 的number类型最大值的解决办法
  10. http升级为https全过程(通过nginx安装SSL证书)