方法一:利用ES6中数组解构赋值语法
<script> var a = 1,b = 2; [a,b] = [b,a]; console.log(a + " " + b); </script>
方法二:利用运算符优先级
<script> var a = 1,b = 2; b = [a,a=b][0]; // 根据运算符优先级,首先执行 a=b,所以a得到了b的值,之后通过数组索引使b得到a的值 console.log(a + " " + b); </script>
方法三:使用“和”形式
<script> var a = 1,b = 2; a = a + b; // 此时a为两数之和 b = a - b; // 两数之和减b为a,此时b为a a = a - b; // 两数之和减b,相当于减a,此时a为b console.log(a + " " + b); </script>
方法四:使用位操作
<script> var a = 1,b = 2; a ^= b; // a先存a和b两者的信息 b ^= a; // a不变,利用b异或反转b的原始值使其等于a的原始值 a ^= b; // b不变,利用a异或反转a的原始值使其等于b的原始值 console.log(a + " " + b); </script>
方法五:使用数组
<script> var a = 1,b = 2; a = [a,b]; b = a[0];
a = a[1]; // 要先给b赋值,不然a就不再是数组了
console.log(a + " " + b);
</script>
方法六:使用对象
<script> var a = 1,b = 2; a = { a:b, b:a } b = a.b; a = a.a; // 同样要先操作b,如果先对a操作,a就不是对象了,b就取不到正确的值了 console.log(a + " " + b); </script>