手機(jī)也能上課
1/12
概念
?ES6
?允許按照一定模式,從?數(shù)組
?和?對(duì)象
?中?提取值
?,對(duì)變量進(jìn)行?賦值
?,這被稱為?解構(gòu)賦值
?。
如下面變量賦值
var a=1;
var b=2;
var c=3;
在ES6語(yǔ)法中可以寫(xiě)為
var [a,b,c]=[1,2,3]; // 等號(hào)兩邊的模式相同
如果解構(gòu)?不成功
?,變量的值就等于?undefined
?。
如果等號(hào)的右邊不是數(shù)組(?不是可遍歷的結(jié)構(gòu)
?),將會(huì)?報(bào)錯(cuò)
?。
?解構(gòu)賦值
?不僅適用于?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]; // ... 表示剩余運(yùn)算符
head // 1
tail // [2, 3, 4]
var [x, y, ...z] = ['a'];
x // "a"
y // undefined
z // []
let [a = 1, b] = []; // 不完全解構(gòu)
a // 1
b // undefined