定义
在ES6中定义了一种解构赋值的语法,将等号右边的对象中的数据导出到左边对应的变量中。
多用于数组、对象的属性取值操作
简单示例
let [a,b,c] = [1,3,"hello"];
console.log(a); //1
console.log(b); //3
console.log(c); //"hello"
特点
1. 表达式的等号左边和右边的结构必须保持一致,没有对应上的返回undefined
数组实例:
let [a,b,c] = [1,3,"hello"];
console.log(a); //1
console.log(b); //3
console.log(c); //"hello"
let [a , [b, c], d] = [4, [5 , 'hello']];
console.log(a); //4
console.log(b); //5
console.log(c); //"hello"
console.log(d); //undefined , 没有对应上字段
对象实例:
let user = {
name:'ken',
age:30,
job:'javascript'
};
let { name, age , job, skill } = user;
console.log(name); //ken
console.log(age); //30
console.log(job); //"javascript"
console.log(skill); //undefined , user对象中没有设置skill属性
2. 等号左边接收赋值时,可定义默认值
let user = {
name:'ken',
age:30
};
let { name, age , job='javascript' } = user;
console.log(name); //ken
console.log(age); //30
console.log(job); //"javascript", user对象中没有设置job属性,解构时设置了默认值
let [a , [b, c], d='10'] = [4, [5 , 'hello']];
console.log(a); //4
console.log(b); //5
console.log(c); //"hello"
console.log(d); //'10' , 虽然没有对应上字段,但是设置默认值了