学习笔记:ES6之解构赋值

来源:互联网 发布:sass淘宝镜像安装失败 编辑:程序博客网 时间:2024/04/28 09:41

(1)解构:左边一种结构,右边一种结构

(2)解构赋值的分类:

  • 数组解构赋值:左,右数组
  • 对象解构赋值:左,右对象
  • 字符串解构赋值:左数组,右字符串
  • 布尔值解构赋值:属于对象解构的一种
  • 函数参数解构赋值
  • 数值解构赋值:属于对象解构的一种

(3)数组解构赋值

    leta,b,rest;

    [a,b]=[1,2];--12

    [a,b,...rest]=[1,2,3,4,5,6];--1 2 [3, 4, 5, 6]

(4)对象解构赋值

    leta,b;

    ({a,b}={a:2,b:0})--20

(5)默认值:

(a)数组:

   [a,b,c=3]=[1,2];--12 3

   [a,b, c]=[1,2];--12 undefine

(b)对象:

   let{a=10,b=2,c=8}={a:4};

   console.log(a,b,c);--428

(6)使用场景:

  (a)变量值的交换

数组:

leta=1;

letb=2;

[a,b]=[b,a];

console.log(a,b);-- a=2,b=1

对象:

leto={p:22,q:false};

let{p,q}=o;

console.log(p,q)--22 false

 

  (b)取函数中的变量值,可以选择性的取值

数组:

functionfoo(){

   return[1,2,3,4];

}

leta ,b;

[a,b]=foo();

console.log(a,b);--a=1,b=2

[a,,,b]=foo();

console.log(a,b);--a=1,b=4

[a,b]=foo();

console.log(a,b);--a=1,b=[2,3,4]

(c)数组与对象的联合使用--主要应对取后台数据相对应的值

   letmetaData={

title:'metaData',

test:[{

title:'test',

desc:'description'

}]

   },

  {title:esTitle,test:[{title:testTitle}]}=metaData;

   console.log(esTitle,testTitle);-- metaData test