ES6按照一定模式,从数组和对象中提取值,对变量进行赋值,称作解构赋值。
数组解构赋值
按照下面的形式进行解构赋值。
let [a,b,c]=[1,2,3];
console.log(a);//1
console.log(b);//2
console.log(c);//3
若解构不成功,变量的值为undefined。
let [foo] = [];
console.log(foo);//undefined
let [a, b] = [1];
console.log(a);//1
console.log(b);//undefined
另一种情况为不完全解构,等号左边内容少,右边多。这种解构可以成功。
let [x, y] = [1, 2, 3];
console.log(x); // 1
console.log(x); //2
let [a, [b], d] = [1, [2, 3], 4];
console.log(a); //1
console.log(b); //2
console.log(d); //4
对象解构赋值
按照移动模式,从对象中提取值,将提取的值赋值给另外的变量。
let person = { name: 'zhangsan', age: 20 };
let { name, age } = person;
console.log(name); // 'zhangsan'
console.log(age); // 20
let {name: myName, age: myAge} = person; // myName myAge 属于别名
console.log(myName); // 'zhangsan'
console.log(myAge); // 20
//以上两种形式都可以。