概念:按照一定模式,从数组和对象提取,对变量进行赋值成为解构。
本质:语法的一种匹配模式,如果等号两边模式相同,左边变量就会被赋予相应的值。
特点就是解析结构 对应赋值,常用的结构赋值数据有:
- 字符串
- 数组 以索引对应
- 对象 通过key值进行索引
//解构赋值
let [a,b,c]=[1,2,3];
console.log(a)//1
结合...扩展运算符配合使用:如果...在等号左边,那么就会把剩余的值合并成一个数组,这个操作符只能写在最后一个变量的位置。
如果匹配中没有对应的值,那么它的值就是undefined
如果等号左边少则只匹配相对应的部分
默认赋值
var [foo=1]=[];
console.log(foo)//1
字符串解构赋值
对象解构赋值,相对应的值一一对应
如果变量中存在重复,可以给变量起个别名进行赋值
let result="之前请求的数据";
const res={
state:200,
msg:"",
result:{//与前面定义的变量 命名重复
url:"www.baidu.com",
data:{
id:1,
name:"张三",
img:'图片'
}
}
}
let {state,result:shujv}=res;//let防止重名 起别名
console.log(state);
console.log(shujv);
//获取对象内部的值 一层层对应出来
let{result:{data:person}}=res
console.log(person);
console.log(person.name);