es6解构

分析解构

文章详情

变量解构

  1. 单层

var {foo}=pony;等同 var foo=pony.foo;
var {foo:baz}=pony;等同var baz=pony.foo;
var {foo=‘bar’}=baz; //如果baz.foo为undefined,则foo取默认值bar
var {foo,bar:baz}={foo:0,bar:1};//foo=0;baz=1

  1. 多层

var {foo:{bar:deep}}={foo:{bar:‘baz’}};//deep=‘baz’
var {foo}={}//默认值为undefined
//多层未定义则报错
var {foo:{bar}}={};

数组解构

var [a,b]=[0,1];//a=0;b=1;
//可以忽略剩余赋值
var [a,b]=[0,1,2];//a=0;b=2;
//交换值
[a,b]=[b,a];

函数参数解构

function foo(bar=2){};//默认参数
function foo(bar={a:1,b=2}){};//函数默认参数可以是对象

  1. 完全解构
    function foo({a=1,b=2}){};
  2. 如果没参数设为空
    function foo({a=1,b=2}={}){};
posted @ 2018-12-20 14:54  dqygiser  阅读(365)  评论(0编辑  收藏  举报