es6 语法 (解构赋值)

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

posted @ 2017-09-28 17:41  abcByme  阅读(645)  评论(0编辑  收藏  举报