JavaScript ES6 解构赋值

130 阅读1分钟

解构赋值

什么是解构赋值

解析某一数据的结构,将我们想要的东西提取出来,赋值给变量或常量

数组解构赋值

1. 模式(结构)匹配
    - [] = [1,2,3];
2. 索引值相同完成赋值
    - const [a,b,c] = [1,2,3];
3. 不取的,可以直接用逗号跳过
    - const [a,[,,b],c] = [1,[2,4,5],3];

默认值

1. 默认值的基本用法 
   - const [a,b] = []; // a = undefined b = undefined
   - const [a=1,b=2] = []; // a = 1 b = 2
2. 默认值的生成条件
   - 只有一个数组成员严格等于(===)undefined 时,对应的默认值才会生效
3. 默认值表达式
   - 如果默认值是表达式,默认值表达式是惰性求职的

对象的结构赋值

1. 模式(结构)匹配
   - {} = {}
2. 属性名相同的完成赋值
   - const {'name':name} = {name:'xiaolin',age:18};  // name = xiaolin
   - const {'name':userName} = {name:'xiaolin',age:18};  // userName = xiaolin 
   - const {name:userName} = {name:'xiaolin',age:18};  // userName = xiaolin 
   - const {name} = {name:'xiaolin',age:18}; // name = xiaolin
3. 将一个已经声明的变量用于解构赋值
   - 需要注意在{}外面加上括号 ({}={obj}) 因为会被浏览器当做块级作用域
    ```js
        let x = 2;
        ({x} = {x:1});
    ```

默认值

1. 默认值的生效条件
   - 对象的属性值严格等于 undefined 时,对应的默认值才会生效
2. 默认值表达式
   - 如果默认值是表达式,默认值表达式是惰性求值的