解構賦值本質是模式匹配攒砖,只要等號兩邊模式相匹配起暮,右邊的值會解構賦值給左邊的變量
let [a,b,c] = [1,2,3];
//等于
let a = 1;
let b = 2;
let c = 3;
如果解構不成功捎废,變量就會等于為undefined
如果等號右邊的不為可遍歷結構(Iterator)秀睛,則會報錯
// 報錯
let [foo] = 1;
let [foo] = false;
let [foo] = NaN;
let [foo] = undefined;
let [foo] = null;
let [foo] = {};
上面的語句都會報錯笼痹,因為等號右邊的值抽兆,要么轉為對象以后不具備 Iterator 接口(前五個表達式)识补,要么本身就不具備 Iterator 接口(最后一個表達式)。
數(shù)組解構賦值
基本用法
默認值
注意辫红,ES6 內部使用嚴格相等運算符(===)凭涂,判斷一個位置是否有值祝辣。所以,如果一個數(shù)組成員不嚴格等于undefined切油,默認值是不會生效的蝙斜。