loading

解构赋值和传统交换谁更快

看到了一篇关于这个的文章,于是自己测试了下

function temp(){

    let a=1;
    let b=2;
    console.time();
    let c = a;
    a = b;
    b = c;
    console.timeEnd();
};


function test(){
    
    let a=1;
    let b=2;
    console.time();
    [a,b] = [b,a];
    console.timeEnd();};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 测试结果:传统设置临时变量的方式更快

temp();test();
VM56:8 default: 0.017333984375 ms
VM67:6 default: 0.009033203125 ms
undefined
temp();test();
VM56:8 default: 0.002197265625 ms
VM67:6 default: 0.008056640625 ms
undefined
temp();test();
VM56:8 default: 0.001708984375 ms
VM67:6 default: 0.0078125 ms
undefined
temp();test();
VM56:8 default: 0.0029296875 ms
VM67:6 default: 0.0078125 ms
undefined
temp();test();
VM56:8 default: 0.003173828125 ms
VM67:6 default: 0.03515625 ms
undefined
temp();test();
VM56:8 default: 0.001953125 ms
VM67:6 default: 0.012939453125 ms
undefined
temp();test();
VM56:8 default: 0.001953125 ms
VM67:6 default: 0.01318359375 ms
undefined
temp();test();
VM56:8 default: 0.001708984375 ms
VM67:6 default: 0.0087890625 ms
undefined
temp();test();
VM56:8 default: 0.002197265625 ms
VM67:6 default: 0.008056640625 ms
undefined
temp();test();
VM56:8 default: 0.004150390625 ms
VM67:6 default: 0.011962890625 ms
undefined
temp();test();
VM56:8 default: 0.001953125 ms
VM67:6 default: 0.031005859375 ms
undefined
temp();test();
VM56:8 default: 0.001953125 ms
VM67:6 default: 0.01904296875 ms
undefined
temp();test();
VM56:8 default: 0.001953125 ms
VM67:6 default: 0.0048828125 ms
undefined
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
最近更新时间: 2021/08/25 17:25:09
最近更新
01
2023/07/03 00:00:00
02
2023/04/22 00:00:00
03
2023/02/16 00:00:00