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}={}){};

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

CAPTCHAis initialing...