手机也能上课
1/12
概念
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构赋值。
如下面变量赋值
var a=1;
var b=2;
var c=3;在ES6语法中可以写为
var [a,b,c]=[1,2,3]; // 等号两边的模式相同如果解构不成功,变量的值就等于undefined。
如果等号的右边不是数组(不是可遍历的结构),将会报错。
解构赋值不仅适用于var命令,也适用于let和const命令。
var [foo, [[bar], baz]] = [1, [[2], 3]]; //可以嵌套
foo // 1
bar // 2
baz // 3var [ , , third] = ["foo", "bar", "baz"]; // 可以忽略
third // "baz"var [x, , y] = [1, 2, 3];
x // 1
y // 3var [head, ...tail] = [1, 2, 3, 4]; // ... 表示剩余运算符
head // 1
tail // [2, 3, 4]var [x, y, ...z] = ['a'];
x // "a"
y // undefined
z // []let [a = 1, b] = []; // 不完全解构
a // 1
b // undefined
