对于面试官提出的不借助第三变量来交换两个变量的值,你能想到几种解决方案呢?如果你只知道一种方案,请你认真看下去… 如果你知道两种方案,那么你可以来了解更多方案了…
1、一般第一时间想起的会是创建一个新的变量,作为中间值用于临时接收其中一个值,最后完成变量的转换
<script>
let a = 10;
let b = 20;
let c = a;
a = b;
b = c;
console.log(a,b); //20 10
</script>
2、变量本身交换数值
<script>
let a = 10;
let b = 20;
b = (a + b) - (a = b);
console.log(a,b); //20 10
</script>
3、算术运算
<script>
let a = 10;
let b = 20;
a = b - a;
b = b - a;
a = b + a;
console.log(a,b); //20 10
</script>
4、数组结构赋值,交换变量a,b的值
<script>
let a = 10;
let b = 20;
[a, b] = [b, a];
console.log(a,b); //20 10
</script>
5、字符串
<script>
let a = 10;
let b = 20;
a = a.toString() + b.toString();
b = a[0]*1;
a = a[1]*1;
console.log(a,b); //20 10
</script>