1.结构赋值
{
let a,b,c;
[a,b] = [1,2];
console.log(a,b); //1,2
}
{
let a,b,rest;
[a,b,...rest] = [1,2,3,4,5,6];
console.log(a,b,rest); //3,[4,5,6]
}
2.对象结构赋值
{
let a,b;
({a,b} = {a:1,b:2});
console.log(a,b); //1,2
}
3.默认值
{
let a,b,c,rest;
[a,b,c=3] = [1,2];
console.log(a,b,c); // 1,2,3
}
4.变量交换
{
let a =1;
let b =2;
[a,b] = [b,a];
console.log(a,b); //2,1
}
5.函数赋值
{
function f(){
return [1,2]
}
let a,b;
[a,b] = f();
console.log(1,2); // 1,2
}
6.选择性接受值
{
function f(){
return [1,2,3,4,5]
}
let a,b,c;
[a,,,b] = f();
console.log(a,b); //1,4
}
7.第一个取出来,其他的赋值给数组
{
function f(){
return [1,2,3,4,5]
}
function ff(){
return [1,2,3,4,5]
}
let a,b,c;
let a1,b1,c1;
[a,...b] = f();
[a1,,...b1] = ff();
console.log(a,b); //1,[2,3,4,5]
console.log(a1,b1);1,2,[3,4,5]
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//对象解构赋值
{
let o = {p:42,q:true};
let{p,q} = o;
console.log(p,q); //42,true
}
//对象解构赋值默认值处理
{
let {a=10,b=5} = {a:3};
console.log(a,b); //3,5
}
//对象json 赋值
{
let metaData = {
title:'abc',
test:[{
title:'test',
desc:'description'
}]
}
let {title:esTitle,test:[{title:cnTitle}]} = metaData;
console.log(esTitle,cnTitle) //abc,test
}