这是我被问过的一个面试题,当时我只想到一种解法,es6的解构赋值
[a, b] = [b, a]
//或者
{a, b} = {b, a}
后来,把这个问题问了别的小伙伴,一个同学提出对于数值变量可以使用加减法(这个方法让我感觉到了算法的魅力)
a = a + b
b = a - b
a = a - b
讨论了以后发现,也可以使用数组实现
a = [b, b = a][0]
这样看来,对象也可以
a = {a : b, b : b = a}.a
方法应该不止这几种,欢迎大家补充