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