解构对象, 根据变量名解构同名属性
let {name , age , sex} = {name:"小明" , sex:"男"}
console.log(`name:${name} , age:${age} , sex:${sex}`)
//name:小明 , sex:男 , age:undefined
解构数组, 根据位置解构
let [name , age , sex , phone ] = [ "小明" , 16 , , 13838383388 ]
console.log( `name:${name} , age:${age} , sex:${sex} , phone:${phone}` )
//name:小明 , age:16 , sex:undefined , phone:13838383388
可以对嵌套的内容进行解构 但是会丢失对父级的变量获取
// 此时 解构结果中 skill 是undefined
const {name, skill: {eat, walk}} = {
// 如果确实想要获取 skill 可以这么写:
// const {name, skill, skill: {eat, walk}} = {
name: '明',
age: 18,
skill: {
eat: ()=> console.log('吃'),
walk: ()=> console.log('走')
}
}
可以给结构出来的变量设置默认值
const { name = '不是小明', age, six = "男" } = {
name: "小明",
age: 12
}; // 小明 12 男
// 当结构出来的值为 `undefined` 的时候, 会使用设置的默认值
可以修改变量名
const { name, age: _age } = { name: "小明", age: 12 };
console.log(name, _age); // 小明 12