小米技术社区
小米技术社区管理员 关于小米

27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]

E-mail:mzze@163.com

Q Q:32362389

W X:xiaomi168527

小米技术社区大牛王飞 关于王飞

27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]

E-mail:wf_live@126.com

Q Q:3940019

微博:王小贱ss

小米技术社区设计小艳 关于小艳

大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]

E-mail:97157726@qq.com

Q Q:97157726

标签云
精品推荐
  • 什么是闭包?js闭包的2个最大用途以及注意事项

    什么是闭包?js闭包的2个最大用途以及注意事项

    各种专业文献上的"闭包"(closure)定义非常抽象,很难看懂。简单的说,闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因……
    199人已经看过了
您的位置:首页 > 前端开发 > Javascript > 原生JS

交换变量值的方法

分类: 原生JS21个赞

JavaScript交换变量的值

问题:

var a = 1, b = 2;

如果交换变量的值?


1.添加中间变量

var c = a;      // c = 1
a = b;     //  a = 2
b = c;     // b = 1


2.加减运算 (不使用中间变量)

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

3.数组法 (不使用中间变量)

var a = 1, b = 2;
[a,b=a]   //  [1, 1]  b=1
[a,a=b]   //  [1, 2]  a=2
定义数组时同时给其中一个变量进行赋值 a=b;  定义数组后再通过数组给另外一个变量赋值
b = [a, a=b][0];  // 最终一行代码解决 [1, 2][1] a=2  b=[1,2][0] = 1


数组法易错的地方

var a = 1, b = 2;
[1 , 2]
a = [a, b][1]; // [1, 2][1]   a=2
b = [a, b][0]; // [2, 2][0]   b=2  //都是2,此种方法是错误的

4.对象法(不使用中间变量)

var a = 1, b = 2;

//定义对象时同时给其中一个变量进行赋值 a=b;  定义对象后再通过对象的属性给另外一个变量赋值
b = {"attr1":a, "attr2":a=b}.attr1;
b = {"attr1":a, "attr2":a=b}['attr1'];

要注意,对象写法不要像以下这么写

b = {a:a, b:a=b}.a; // 难以阅读的形式  对象的属性名,可以不加引号,但还是普通字符串,不是变量


小米技术社区

本站内容均为小米原创,转载请注明出处:小米技术社区>> 交换变量值的方法