• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > JavaScript两个变量交换值的实现方法

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

作者:wall''''s 字体:[增加 减小] 来源:互联网 时间:2017-05-11

wall''''s通过本文主要向大家介绍了JavaScript两个变量交换值的实现方法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

概要

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

一、普通做法

var a = 1,
 b = 2,
 tmp;
tmp = a;
a = b;
b = tmp;
</div>

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

二、算术运算

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

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

三、异或运算

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

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

四、ES6的解构

let a = 1,
 b = 2;
[a, b] = [b, a];
</div>

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

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

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11Bootstrap笔记之缩略图、警告框实例详解
  • 2017-05-11node.js利用redis数据库缓存数据的方法
  • 2017-05-11详解如何在NodeJS项目中优雅的使用ES6
  • 2017-05-11原生js实现无限循环轮播图效果
  • 2017-05-11Vuejs 组件——props数据传递的实例代码
  • 2017-08-26《Javascript DOM编程艺术》读书笔记
  • 2017-05-11jQuery EasyUI 页面加载等待及页面等待层
  • 2017-05-11jQuery validate 验证radio实例
  • 2017-05-11angularjs中使用ng-bind-html和ng-include的实例
  • 2017-05-11JavaScript自动点击链接 防止绕过浏览器访问的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
    • Input文本框随着输入内容多少自动延伸的实现
    • JS出现失效的情况总结
    • js控制按钮,防止频繁点击响应的实例
    • js对用户输入非法字符进行编解码预防xss
    • 微信小程序 页面跳转和数据传递实例详解
    • JS批量替换内容中关键词为超链接
    • js Canvas绘制圆形时钟效果
    • JavaScript中Promise的使用详解
    • angularjs实现首页轮播图效果

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有