1. 定义
ES6允许按照一定模式从数组和对象中提取值并且赋值给多个变量, 这被称为解构(deconstructure)赋值。
数组解构
eg:
let [a, b, c] = [1, 2, 3];
上面代码等价于:
let a = 1;
let b = 2;
let c = 3;
本质上,这种写法属于"模式匹配", 只要等号两边的模式相同, 左边的变量就会被赋予对应的值。
2. 一些复杂的例子
数组嵌套解构
eg:
let [a, [[b], c]] = [1, [[2], 3]];
a // 1
b // 2
c // 3
利用rest符号(...)
eg:
let [head, ...tail] = [1, 2, 3, 4];
head // 1
tail // [2, 3, 4]
eg:
let [x, y, ...z] = ['a'];
x // 'a'
y // undefined
z // []
3. 对象解构
数组解构按照次序, 对象解构根据属性同名。
eg:
let { x, y } = { y: "aaa", x: "bbb" };
x // "bbb"
y // "aaa"
网友评论