EMACScript6 解构赋值

解构赋值本质是模式匹配,只要等号两边模式相匹配,右边的值会解构赋值给左边的变量

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 接口(最后一个表达式)。

数组解构赋值

基本用法

默认值

注意,ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,如果一个数组成员不严格等于undefined,默认值是不会生效的。

对象解构赋值

你可能感兴趣的:(EMACScript6 解构赋值)