SOURCE

// talk is cheap, show me the code.
// https://blog.csdn.net/AV_woaijava/article/details/106928397

// 使用=设置默认值
// 使用:重命名解构后的变量
// 即使对undefined进行结构,也不会抛异常,所以可以放心大胆的解构啦



// function deconstruct(obj) {
//   {
//     const {list} = {...obj}
//     console.log('直接解构 list=', list)
//   }
//   {
//     const {list = '/'} = {...obj}
//     console.log('有默认值的解构 list=', list)
//   }
//   {
//     const {list: pageApi} = {...obj}
//     console.log('解构后重命名 pageApi=', pageApi)
//   }
//   {
//     const {list: pageApi = '/'} = {...obj}
//     console.log('解构后重命名并设置默认值 pageApi=', pageApi)
//   }
// }

// deconstruct({ list: '/users' })
// console.log('----------------')
// deconstruct({})
// console.log('----------------')
// deconstruct(undefined)



// 对象结构解决的问题
// const list = obj.data.list || ''
// 如果obj.data是一个空对象,那么此时就会报错
// 使用对象解构就能解决这一问题

function deconstruct(obj) {
  const {data = {}} = {...obj}
  const {list = ''} = {...data}
  console.log('list=', list)
  console.log('list=', obj.data.list || '')
}

const url = {
  data: {
    list: '/users'
  }
}

deconstruct(url)
console.log('----------------')
deconstruct({})

console 命令行工具 X clear

                    
>
console