当前位置:首页 > 日记 > 正文

JavaScript两个变量交换值的实现方法

JavaScript两个变量交换值的实现方法

概要

本文主要描述,如何不使用中间值,将两个变量的值进行交换。

一、普通做法

var a = 1, b = 2, tmp;tmp = a;a = b;b = tmp;

普通的做法就是声明多一个临时变量tmp,进行数据交换过程中的缓存。这样的做法直观,易懂。但是,会增加内存的使用。

二、算术运算

var a = 1, b = 2;a = a + b; // a = 3, b = 2b = a - b; // a = 3, b = 1a = a - b; // a = 2, b = 1

通过算术运算过程中的技巧,可以巧妙地将两个值进行互换。但是,有个缺点就是变量数据溢出。因为JavaScript能存储数字的精度范围是 -253 到 253。所以,加法运算,会存在溢出的问题。

三、异或运算

var a = 1, // 二进制:0001 b = 2; // 二进制:0010a = a ^ b; // 计算结果:a = 0011, b = 0010b = a ^ b; // 计算结果:a = 0011, b = 0001a = a ^ b; // 计算结果:a = 0010, b = 0001

本题巧用位运算的技巧,利用 a ^ b ^ b == a 的特点,进行数值交换,避免了使用算术运算带来的弊端,不会发生溢出问题。

四、ES6的解构

let a = 1, b = 2;[a, b] = [b, a];

用解构的语法特性,一次性解决,简单暴力,哈哈哈~

更重要的一点:解构语法还适用于其他类型的变量进行互换。所以,用解构可以很easy地进行互换。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

相关文章

ps暂存盘怎样清理使用

ps暂存盘怎样清理使用

方法,使用方法,电脑软件,ps,  使用ps有时候会发现暂存盘满了,这时候大家可以清理然后就能再次使用了。那么大家知道ps暂存盘怎样清理使用吗?下面是小编整理的ps暂存盘怎样清理使用的方法,希望能帮到大家!ps暂存盘清理使用的方法如图打开ps…

Excel2016表格中制作工资条的方法

Excel2016表格中制作工资条的方法

方法,工资条,表格,电脑软件,  工资条相信大家并不陌生对吧!每月我们必会去领取的,上面会记录我们每月的工资收入情况,这也是许多做财务的必备工作之一。以下是小编为您带来的关于Excel2016制作工资条,希望对您有所帮助。Excel2016制作工资条…

PS绘制质感拟物化牛皮手提包教程

PS绘制质感拟物化牛皮手提包教程

教程,绘制,手提包,牛皮,质感,本次教程内容主要是使用Photoshop制作一个拟物包包,那么如何设计出这样的效果呢?我们需要注意哪些细节?有哪些简单实用的制作技巧呢?这篇教程会带给大家详细的质感拟物化牛皮手提包绘制过程,一起开始制作吧效果图:主…

jquery实现一个全局计时器 | 商城

jquery实现一个全局计时器 | 商城

计时器,全局,商城,电脑软件,jquery,本文实例为大家分享了商城一类都可以使用的jquery全局计时器,供大家参考,具体内容如下实现思路遍历所有待计时元素,添加一个setInterval计时函数,每隔X秒执行更新计时操作(中间可能还有格式化时间操作)。代码实…

excel2007怎样删除宏教程

excel2007怎样删除宏教程

删除,方法,教程,电脑软件,  excel宏或许对于新手来说显得高大上,但是也有不用的时候,那么要怎样删除宏呢?下面小编马上就告诉大家excel2007删除宏的方法吧,希望小编整理的资料对大家有用。excel2007删除宏的方法我在电脑桌面上自建了一个名…

PS制作一个漂亮的水晶按钮

PS制作一个漂亮的水晶按钮

按钮,水晶,漂亮,电脑软件,PS,但我们在流量网页的时候经常看到一些漂亮的水晶按钮。这些按钮是如何制作的呢?接下来我通过混合模式、浮雕效果来制作一个水晶按钮,下面我们来看看吧。最终效果图:1. 新建一个文件,快捷键是ctrl+n。2. 在工具栏选择…

excel 公式栏消失了的解决教程

excel 公式栏消失了的解决教程

教程,公式,消失了,电脑软件,excel,  在Excel中经常需要用到公示栏来编辑公式函数,但因为某种原因而导致公式栏消失了,这个时候只需要我们简单设置几步就可以把公示栏消失了的问题解决了。下面是由小编分享的excel 公式栏消失了的解决教程,以…

excel跨表格快速匹配查找数据的方

excel跨表格快速匹配查找数据的方

方法,数据,查找,表格,快速,  Excel中需要跨表查找匹配数据,跨表格具体该如何做到快速匹配查找数据呢?下面是由小编分享的excel跨表格快速匹配查找数据的方法,以供大家阅读和学习。excel跨表格快速匹配查找数据的方法跨表匹配查找数据步骤1:…

wps表格相乘函数公式怎么用

wps表格相乘函数公式怎么用

函数,表格,乘法,使用方法,公式,  在wps表格中处理数据的时候,乘法函数是经常会用到的,那么,你知道如何使用乘法函数吗?一般要怎么设置乘法公式呢?下面就让小编告诉你wps表格如何使用乘法函数。wps表格乘法函数的使用方法打开你的wps表格。wp…

用JS编写一个函数,返回数组中重复

用JS编写一个函数,返回数组中重复

元素,组中,实例,一个函数,电脑软件,用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码:var arr = [1, 2, 3, 1, 2, 3, 4, 5]; var getRepeat = function (arr) { var obj = {}; for (var i = 0, len = arr.length; i < len; i…

PS快速打造精美山水画海报的教程

PS快速打造精美山水画海报的教程

教程,山水画,海报,精美,快速,今天给大家带来的教程是,应用PS打造精美的山水画海报,我们来看一看效果。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-04OK那么开始我们今天的教程1、将素材拖拽进PS。老规矩…

详解Vue用axios发送post请求自动se

详解Vue用axios发送post请求自动se

请求,详解,电脑软件,Vue,post,vue-resource不再维护之后,我也用起了axios,但是死活无法设置服务器发送过来的cookie后来查询文档发现,这个是要单独配置的。// `withCredentials` indicates whether or not cross-site Access-Control requests…