es6之变量的解构赋值

解构赋值是对数组和对象的解构

1.如果有默认值且右侧没有赋值,那么就还是默认值

如果没有默认值且右侧没有复制,那么就是undefined

如果右侧赋值null,那么就是null而不是undefined

 

2.对象的解构赋值是根据key值赋值的

数组的解构赋值是根据顺序一一对应的

let obj = {a:0,b:1};   let {a,b } = obj;  --->  a=0;b=1

其中 let { a,b }相当于 let { a:a,b:b },是依据的 es6的对象字面量简写 的特性;之所以根据key值赋值,实际上是右侧的a;所以也可以写成let {aa:a,bb:b}

 

3.如果已经声明了变量,解构的时候就需要用()括起来

let a,b,obj={a:1,b:2};   </br>   ({a,b} = obj)

 

4.应用场景

  4.1 交换变量 x=1,y=2;  [x,y]=[y,x];

  4.2 获取函数多个返回值 : function aa(){ return [a,b,c] } ;  let [a,b,c] = aa();

  4.3 提取json中的数据;

  4.4 结合for..of 获取键值键名  for( let [key,value] of a){};

 

5.字符串的解构赋值

  let str = hello;

  let [a,b,c] = str;

  a = 'h';b='e';c='llo;

posted @ 2020-08-30 23:10  hey等风也等你  阅读(111)  评论(0)    收藏  举报