1、数组解构与对象解构对比
因为数组中的元素有下标,是有顺序规则的,所以数组的解构可以通过位置进行提取,
而对象里的成员没有固定次序,不能像数组一样按照位置提取,那么对象的解构是通过属性名进行提取的
2、对象解构基本用法
- 书写方式及匹配原则:对象解构使用花括号,花括号里面的变量名要匹配解构对象中的属性名去提取其中的值,如果不能匹配到则返回undefined
- 设置默认值:对象解构同数组解构一样也可以设置默认值
- 重命名:由于解构的变量名用来匹配被解构对象中的属性名的,如果碰到作用域中有同名成员会产生冲突而已用重命名的方式解决
const obj = { name: 'Judy', age: 18, sex: 'f', address: 'sh'}
// 匹配
const {name, age} = obj
console.log(name, age) // Judy 18
// 不匹配
const { cc } = obj
console.log(cc) // undefined
// 设置默认值,能匹配到值就返回该值,匹配不到则返回默认值
const { sex = 'm', dd = 'nothing'} = obj
console.log(sex, dd) // f nothing
// 重命名解决变量同名冲突
const address = 'beijing'
// :前面是解构对象对应的属性名,addressResult则是我们最终提取到的值用来存储的变量
const { address: addressResult } = obj
console.log(address, addressResult) // beijing sh
// 重命名和设置默认值可以同时使用
const { name: nameResult = 'Anan', old: oldResult = 20} = obj
console.log(nameResult, oldResult) // Judy 20
3、使用场景举例
目的:简化代码编写,代码体积变小,书写起来也会更方便、速度更快,特别是大量重复使用的情况下
const { log } = console
log('我是简化后的console.log') // 我是简化后的console.log