原文地址:
http://blog.youkuaiyun.com/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];