Javascript 交换两个对象a,b,哪种方式更好?

Javascript swap two objects a, b, which way is better?

得到3种在js中交换两个对象a和b的方法,但不确定它们之间有什么区别,哪个更好?

1.

[a, b] = [b, a]

2.

b = [a, a = b][0]
or
b = [a][a = b, 0]

3.

temp = a;
a = b;
b = temp;

定义"better"...

就个人而言 - 为了便于阅读,我会说第一个例子。

如果我有 2 或 3 个白板,我可能会遵循第二个示例...第三个示例应该是死罪 ;)

IMO,更好的方法是:

var a = 1;
var b = 3;

[a, b] = [b, a];
console.log(a); // 3
console.log(b); // 1

来源:Destructuring Assignment

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

b = [a, a = b][0]; // shorthand version

ES6(Firefox 和Chrome 已经支持(解构赋值数组匹配)):但是速度非常慢

临时变量方法稍微快一些,更通用,也更易读