es6中的解构有数组解构,对象解构,字符串解构,函数参数解构,圆括号解构
一.数组解构
1.基本用法
以前为变量赋值,只能直接指定值。
let a = 1;
let b = 2;
let c = 3;
ES6 允许写成下面这样。
let [a, b, c] = [1, 2, 3];//a=1,b=2,c=3
本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。也可使用嵌套
2.嵌套写法
let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3
``
let [x, , y] = [1, 2, 3];
x // 1
y // 3
3.剩余变量
let [head, ...tail] = [1, 2, 3, 4];
head // 1
tail // [2, 3, 4]
let [x, y, ...z] = ['a'];
x // "a"
y // undefined
z // []
4.默认值
{
let a,b,c;
[a,b,c=3] = [1,2];
console.log(a,b,c)
}
二.对象解构
1.基本用法
let { foo, bar } = { bar: 'bbb',foo: 'aaa' };
console.log(foo,bar);
注:对象的解构与数组有一个重要的不同。数组的元素是按次序排列