分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

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

发布时间:2023-09-06 01:36责任编辑:熊小新关键词:暂无标签

第一种:算术运算法

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 = 3b ^= a; // b = b ^ (a ^ b) = 2 ^ (1 ^ 2) = 1a ^= 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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved