解构赋值
什么是解构赋值
解析某一数据的结构,将我们想要的东西提取出来,赋值给变量或常量
数组解构赋值
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};
- const {'name':userName} = {name:'xiaolin',age:18};
- const {name:userName} = {name:'xiaolin',age:18};
- const {name} = {name:'xiaolin',age:18};
3. 将一个已经声明的变量用于解构赋值
- 需要注意在{}外面加上括号 ({}={obj}) 因为会被浏览器当做块级作用域
```js
let x = 2;
({x} = {x:1});
```
默认值
1. 默认值的生效条件
- 对象的属性值严格等于 undefined 时,对应的默认值才会生效
2. 默认值表达式
- 如果默认值是表达式,默认值表达式是惰性求值的