ES6解构赋值
结构解构可以分为数组,对象和函数
对象的话有以下几种
var { foo } = pony //等同于var foo = pony.foo var { foo: baz } = pony //等同于var baz = pony.foo var { foo = 'bar' } = baz //baz.foo不存在或未赋值,foo='bar' var { foo, bar: baz } = { foo: 0, bar: 1}//foo = 1, bar is not defined, baz = 1 var { foo: { bar } } = { foo: { bar: 'baz' } }//可以深层获取bar='baz' var { foo: { bar: deep } } = { foo: { bar: 'baz' } }//可以设置别名 var { foo } = {}//foo = undefined var { foo: { bar } } = {}//Cannot read property 'bar' of undefined
数组分为
[a, b] = [0, 1] //a: 0 and b: 1 [a, , b] = [0, 1, 2] //a: 0 and b: 2 [a, b] = [b, a] //相互调换
函数有
function foo (bar=2) {} //设置默认值 function foo (bar={ a: 1, b: 2 }) {} function foo ({ a=1, b=2 }) {} function foo ({ a=1, b=2 } = {}) {}//如果未提供任何内容,则默认为空对象