ES6 语法(解构赋值)

2019-01-07  本文已影响0人  滨滨_57b5

什么是解构赋值及用法

//此处是一个块作用域
{
  let a,b,rest;
  [a,b]=[1,2];//ES6写法,数组类型解构赋值
  //let a=1,b=2; //ES5写法
  console.log(a,b);//结果 1 2
}

{
  let a,b,rest;
  [a,b,...rest]=[1,2,3,4,5,6];
  console.log(a,b,rest);//结果 1 2 (4) [3, 4, 5, 6]
}


//对象结构赋值
{
  let a,b;
  ({a,b}={a:1,b:2});
  console.log(a,b);//结果 1 2
}


{
  let a,b,c,rest;
  [a,b,c=3]=[1,2];//ES6写法,数组类型解构赋值
  console.log(a,b,c);//结果 1 2 3
}

{
  let a,b,c,rest;
  [a,b,c]=[1,2];//ES6写法,数组类型解构赋值
  console.log(a,b,c);//结果 1 2 undefined
}

解构赋值分类:

  • 数组解构赋值
  • 对象解构赋值
  • 字符串解构赋值
  • 布尔值解构赋值
  • 函数参数解构赋值
  • 数值解构赋值

解构赋值的使用场景

{
  let a=1;
  let b=2;
  [a,b]=[b,a];
  console.log(a,b);//结果 2 1
}
{
  function f() {
    return [1,2];//第一个返回的是数量,第二返回的是金额
  }
  let a,b;
  [a,b]=f();
  console.log(a,b);//结果 1 2
}
{
  function f() {
    return [1,2,3,4,5];
  }
  let a,b,c;
  [a,,,b]=f();
  console.log(a,b);//结果 1 4
}
{
  function f() {
    return [1,2,3,4,5];
  }
  let a,b,c;
  [a,...b]=f();
  console.log(a,b);//结果 1 [2,3,4,5]
}

{
  function f() {
    return [1,2,3,4,5];
  }
  let a,b,c;
  [a,,...b]=f();
  console.log(a,b);//结果 1 [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:'哈哈'
    }]
  }
  //给title指定一个接收的变量esTitle
  let {title:esTitle,test:[{title:cnTitle}]}=metaData
  console.log(esTitle,cnTitle);//结果 abc test
}
上一篇下一篇

猜你喜欢

热点阅读