使用场景

交换变量内容

1
2
var x=1, y=2;
[x, y] = [y, x]

解构对象内容

1
var {hostname:domain, pathname:path} = location;

具名参数、默认参数

解构作为函数参数的参数,实现具名参数和默认参数

1
2
3
4
5
6
7
8
// 解构时可以设置默认值
function buildDate({year, month, day, hour=0, minute=0, second=0}) {
return new Date(year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second);
}

// 传递的对象的属性顺序并不要求是固定的
buildDate({ year: 2017, month: 1, day: 1 });
// Sun Jan 01 2017 00:00:00 GMT+0800 (CST)