一、对象解构

1.1 解构的定义

使用ES6中的语法规则,将一个对象或数组的某个属性提取到某个变量中。

1.2 在解构中使用默认值

{属性名(变量名) = 默认值}

1.3 多重结构

属性名:{}

1.4 非同名属性解构

{属性名:变量名}

  1. const user = {
  2. name: 'test',
  3. age: 11,
  4. sex: '男',
  5. address: {
  6. province: '四川',
  7. city: '成都'
  8. }
  9. }
  10. // 普通调用
  11. // let name,age,sex,address
  12. // name = user.name
  13. // age = user.age
  14. // sex = user.sex
  15. // address = user.address
  16. // 对象解构
  17. // let name,age,sex,address;
  18. // ({name, age, sex, address} = user);
  19. // 简写
  20. // let {name, age, sex, address} = user;
  21. const {name,...obj} = user;
  22. console.log(name, obj);

二、数组解构

  1. const numbers = ["a","b","c","d"]
  2. // const {
  3. // 0:n1,
  4. // 1:n2,
  5. // 2:n3,
  6. // 3:n4
  7. // } = numbers;
  8. // let n1,n2
  9. // ([n1,n2] = numbers)
  10. // let [n1,n2] = numbers
  11. let [n1,,,n4] = numbers
  12. console.log(n1,n4)
  13. let a = 1,b = 2;
  14. [b, a] = [a, b]
  15. console.log(a, b);

三、参数解构

  1. const user = {
  2. name: 'test',
  3. age: 11,
  4. sex: '男',
  5. address: {
  6. province: '四川',
  7. city: '成都'
  8. }
  9. }
  10. // 传统写法
  11. // function print(user){
  12. // console.log(`姓名:${user.name}`)
  13. // console.log(`年龄:${user.age}`)
  14. // console.log(`性别:${user.sex}`)
  15. // console.log(`省份:${user.address.province}`)
  16. // console.log(`城市:${user.address.city}`)
  17. // }
  18. function print({name,age,sex,address:{
  19. province,
  20. city
  21. }}){
  22. console.log(`姓名:${name}`)
  23. console.log(`年龄:${age}`)
  24. console.log(`性别:${sex}`)
  25. console.log(`省份:${province}`)
  26. console.log(`城市:${city}`)
  27. }
  28. print(user)