数字交换三种方式的效率

103 阅读1分钟

环境:

image.png

一共是三种方式

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');

结果

image.png

我测试了很多次,都是创建第三个变量是最快的,es6的结构是最慢的,位运算在中间

最后

建议直接新建一个文件收藏交换的方法,结构就不用了,想要省内存就用位运算O(∩_∩)O哈哈~