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;

浙公网安备 33010602011771号