所谓解构,指的是将数据结构分解为更小的部分,从而使数据提取变得容易。

对象解构:

  • 使用解构时,必须提供初始化值
        let Person = {
            name: 'sen',
            age: 18
        }
        let {name, age} = Person;
    
  • 解构表达式的值为=右侧的值
  • 如果对象中没有同名属性时,解构表达式新赋值的变量的值为undefined
  • 解构对象只是赋值时,需要加()
  • 赋值给不同名的变量
        let Person = {
            name: 'sen',
            age: 18
        }
        let {name: localName, age: localAge} = Person;
    
  • 设置默认值
        let Person = {
            name: 'sen',
            age: 18
        }
        let {name, age: localAge = 18} = Person;
    
  • 嵌套解构
        let Person = {
            name: 'sen',
            age: 18,
            score: {
                maths: 100
            }
        }
        let {name, score: {maths}} = Person;
        console.log(maths);
    

数组解构

  •     let score = [99, 88, 77];
        let [maths, english, chinese] = score;
        [,,chinese] = score;
    
  • 数组解构赋值不需要加()
        let a = 3;
        let b = 4;
        [a, b] = [b, a]
    
  • 嵌套的解构
        let score = [99, 88, [77]];
        let [,,[chinese]] = score;
    
  • 剩余项
        let score = [99, 88, 77];
        let [maths, ...restScore] = score;
        console.log(restScore) // [88, 77]
    
  • 数组和对象可以混合解构
        let Person = {
            name: 'sen',
            age: [0, 18]
        }
        let {name: localName, age: [start]} = Person;
        console.log(start);