手机也能上课
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 // 3
var [ , , third] = ["foo", "bar", "baz"]; // 可以忽略
third // "baz"
var [x, , y] = [1, 2, 3];
x // 1
y // 3
var [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