#从数组和对象中提取值,对变量进行赋值,这种被称为解构
let [x,y,z]=new Set(["a","b","c"])
console.log(x);//a
复制代码
#对象的解构赋值是先找到同名属性,然后再赋值给对应得到变量,真正赋值的是后者
var {foo:baz}={foo:"aaa",bar:"bbb"}
baz//"aaa"
foo//error
复制代码
#默认值生效的条件是对象的属性值严格等于undefined
var {x=3}={x:undefined};
x//3
var {x=3}={x:null};
x//null
复制代码
#字符串的解构赋值
const [a,b,c,d,e]='hello';
a//"h" b//"e" c//"l" d//"l" e//"o "
复制代码
#解构赋值的用途
1)交换变量的值[x,y]=[y,x]
2)从函数返回多个值
function example(){
return [1,2,3];
}
var [a,b,c]=example();
//返回对象
function example(){
return {
foo:1,
bar:2
};
}
var {foo,bar}=example();
3)提取JSON数据
var jsonData={
id:42,
status:"OK",
data:[867,5309]
}
let{id,status,number}=jsonData;
console.log(id,status,number);
4)遍历Map解构
var map=new Map();
map.set('first','hello');
map.set('second','hello');
for(let[key,value] of map){
console.log(key+" is "+value);
}
->first is hello
->second is hello
复制代码