环境:
一共是三种方式
es6的结构
let a = 65535;
let b = 65534;
console.time('1');
[a,b] = [b,a];
console.timeEnd('1');
位运算
let a = 65535;
let b = 65534;
console.time('2');
a = a^b;
b = a^b;
a = a^b;
console.timeEnd('2')
最常用的交换
let a = 65535;
let b = 65534;
console.time('3');
let c = a;
a = b;
b = c;
console.timeEnd('3');
完整代码
let a = 65535;
let b = 65534;
console.time('1');
[a,b] = [b,a];
console.timeEnd('1');
console.time('2');
a = a^b;
b = a^b;
a = a^b;
console.timeEnd('2')
console.time('3');
let c = a;
a = b;
b = c;
console.timeEnd('3');
结果
我测试了很多次,都是创建第三个变量是最快的,es6的结构是最慢的,位运算在中间
最后
建议直接新建一个文件收藏交换的方法,结构就不用了,想要省内存就用位运算O(∩_∩)O哈哈~