2rever的前端小站

数组的结构赋值

Word count: 452 / Reading time: 2 min
2018/11/20 Share
  • 数组的结构赋值
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// 1. 数组对应的解构赋值

let a = 1, b = 2 , c = 3;
console.log('a :', a);
console.log('b :', b);
console.log('c :', c);

let a = 1;
let b = 2;
let c = 3;
console.log('a :', a);
console.log('b :', b);
console.log('c :', c);

// 声明三个变量
let [a, b, c] = [1, 233, 3];
console.log('a :', a);
console.log('b :', b);
console.log('c :', c);

// 2. 复杂的解构赋值

let [ a, [b], c] = [1, [2], 3];
console.log('a :', a);
console.log('b :', b);
console.log('c :', c);

// 3. 越过解析
let [a, ,b] = [1, 2, 3];
console.log('a :', a);
console.log('b :', b);

// 4. 配合展开运算符

let [a, [b, ...d], c] = [1, [2, 3, 4], 3];
console.log('a :', a);
console.log('b :', b);
console.log('c :', c);
console.log('d :', d);

// 5. 如果解构不成功,变量的值就等于undefined。
let [a, b] = [1];
console.log('a :', a);
console.log('b :', b);

// a : 1
// b : undefined

// 6. 不完全解构

let [ a, [b], c] = [1, [2, 3, 4], 3];
console.log('a :', a);
console.log('b :', b);
console.log('c :', c);

// 7. 数组的解构赋值:如果等号的右边不是数组,那么将会报错。

let [a, b] = null;
let [a, b] = undefined;
let [a, b] = {};
let [a, b] = 123;

// 8. 解构赋值允许指定默认值。

let [a = 9, b = 0, c = 3] = [ 1, 2];
console.log('a :', a);
console.log('b :', b);
console.log('c :', c);

let [a = 2, b = 9] = [undefined, 2]
console.log('a :', a);
console.log('b :', b);

// 9. 当一个数组成员严格等于undefined,默认值才会生效。


// 10. 默认值可以引用解构赋值的其他变量,但该变量必须已经声明

let [a = 9, b = a] = [1];

console.log('a :', a);
console.log('b :', b);
CATALOG