首页 > Web开发 > 详细

交换两个变量的值,不借助第三个变量的 三种方法(JS实现)

时间:2018-01-13 16:14:40      阅读:372      评论:0      收藏:0      [点我收藏+]

第一种:算术运算法

var a = 10;
var b = 12;
a = b - a; 
b = b - a; 
a = b + a; 

它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。
具体过程:第一句“a=b-a”求出ab两点的距离,并且将其保存在a中;第二句“b=b-a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;第三句“a=b+a”求出b到原点的距离(a到原点距离与ab两点距离之和),并且将其保存在a中。完成交换。

效果:

 技术分享图片

 

第二种:借助数组

原理不必多说,借助数组的下标及运算符的优先级实现

var a = 1,b = 2;
a = [b, b = a][0];

效果:

技术分享图片

 

第三种:位运算

var a = 1, b = 2;
a ^= b; // a =a ^ b = 1 ^ 2 = 3
b ^= a; // b = b ^ (a ^ b) = 2 ^ (1 ^ 2) = 1
a ^= b; 

原理:

^运算符跟|类似,但有一点不同的是 如果两个操作位都为1的话,结果产生0。

1的二进制表示为 0 0 0 0 0 0 1

3的二进制表示为 0 0 0 0 0 1 1

所以 1 ^ 3的结果为2

效果:

技术分享图片

 

交换两个变量的值,不借助第三个变量的 三种方法(JS实现)

原文:https://www.cnblogs.com/black-humor/p/8279187.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!