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