解构赋值和传统交换谁更快
看到了一篇关于这个的文章,于是自己测试了下
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
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
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