不借助第三个变量交换两个数值类型变量的值

来源:互联网 发布:矩阵和行列式的转换 编辑:程序博客网 时间:2024/04/29 15:25
原文地址:http://blog.csdn.net/q1056843325/article/details/53223914

方法一

最简单的方法是用一个临时变量

var a = 10, b = 20;var temp = a;a = b;b = temp;

方法二

让其中一个变量变成与a和b都有关系的值
a = a + b;b = a - b;a = a - b;
或者
a = a - b;b = a + b;a = b - a;

方法三

利用位运算
a ^= b;b ^= a;a ^= b;
C++甚至可以a^=b^=a^=b来完成任务,但是JS不可以,不过可以这样
a = (b^=a^=b)^a;

方法四

把a先变成一个对象
a = {a: b, b: a};b = a.b;a = a.a;

方法五

把a先换成一个数组
a = [a, b];b = a[0];a = a[1];

方法六

根据运算符优先级,先执行b=a,然后一步数组索引让a得到b的值
a = [b, b = a][0];

方法七

ES6的解构赋值语法

[a,b] = [b, a];










阅读全文
0 0