数组模型的解构赋值

知有的头像
知有
177

数组的解构赋值

解构赋值是对赋值运算符的拓展:

他是针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。

在解构中,有下面两部分参与:

解构的源,解构赋值表达式的右边部分。

解构的目标,解构赋值表达式的左边部分。

下面的代码是几个例子:

let [a, b, c] = [1, 2, 3];
//相当于
// a = 1
// b = 2
// c = 3

可嵌套的:

let [a, [[b], c]] = [1, [[2], 3]];
//相当于
// a = 1
// b = 2
// c = 3

可忽略的:

let [a, , b] = [1, 2, 3];
//相当于
// a = 1
// b = 3

不完全解构:

let [a = 1, b] = []; // 相当于a = 1, b = undefined

剩余运算符:

let [a, ...b] = [1, 2, 3];
//相当于
//a = 1
//b = [2, 3]

字符串等:

let [a, b, c, d, e] = 'hello';
//相当于
// a = 'h'
// b = 'e'
// c = 'l'
// d = 'l'
// e = 'o'

解构默认值,当解构模式有匹配结果,且匹配结果是undefined时,默认值会作为返回结果

let [a = 3, b = a] = [];     // a = 3, b = 3
let [a = 3, b = a] = [1];    // a = 1, b = 1
let [a = 3, b = a] = [1, 2]; // a = 1, b = 2
用户评论
评论列表