假定
let a = 1,b=10;
期望交换a和b的值
序号 | 实现方案 | 中间变量? | 备注 |
---|---|---|---|
1 | let c; c = a; a = b; b = c; |
✅ | |
2 | a ^= b; b ^=a; a ^=b |
MDN-按位操作符, 只适用Number类型 | |
3 | a = a + b; b = a - b; a = a - b; |
只适用Number类型 | |
4 | a = { a, b }; a = a.b; b = a.a |
||
5 | a = [a, b]; b = a[0]; a = a[1] |
||
6 | a = [b, b=a][0] |
有脑洞, b=a先执行 | |
7 | {a, b} = {a:b, b:a} |
对象解构赋值 | |
8 | [a, b] = [b, a] |
推荐, 数组解构赋值 |
简书首发, 转载请注明来自简书GivenCui