什么是解构赋值?
在编码过程中,我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段,在ES6中允许按照一定模式,从数组和对象中提取值,对变量进行赋值,称其为解构赋值 - 作用:是对变量进行赋值。 - 变量值的来源:是数组或对象。 - 规则:有一定的模式。
数组的解构赋值
1.按下标一一对应去赋值

2.左右数量不等,会相应的对号入座,没有的以undefined赋值
2.1.左边少于右边,右边多余的舍弃

2.2.左边多余右边,左边按位置少的undefined补充

3.多维数组解构赋值,左右两边多维数组的下标要相同,否则报错

4.左边跳过在赋值时相应位置同样跳过

5.有默认值时,如果右边相应位置有值,将被覆盖,否则取默认值

对象的解构赋值

let {name,age}=obj;做了两件事 - 定义了两个变量(name,age) - 给这两个变量赋值 当运行完成后,会多出两个变量--name,age
解构规则
- 1.解构规则:必须要通过键名进行关联。
- 2.没有键名就是undefined
- 3.对象的结构赋值的内部机制是先找到同名属性,然后赋值给相应的变量
1.按属性名一一对应关系进行赋值,左右顺序可打乱


2.默认值赋值,同数组

3.变量名与属性名不一致

4.圆括号的用法
如果在结构之前就已经定义了对象,解构时需要加圆括号

5.沿着原型链进行查找解构赋值

6.函数参数中的解构赋值

上面的形参列表中**{lastname,age}相当于定义两个变量,通过对象的解构赋值给它们设置值,对应属性名同样必须相同才能被匹配到,否则是undefined**
字符串解析赋值

=号右边是个字符串,它没有length这个属性,但它的隐式原型对象上有,将这个属性赋给左边对象
解构赋值应用
1.交换变量的值
有两个变量:a,b,现在需要交换这两个变量值
1.1.常规方法:

1.2.解析赋值交换法

2.快速获取从函数中返回的多个值

3.快速获取对象的属性值
