Javascript6/ES2015中的解构详解
ECMAScript 2015引入了许多语法糖帮助你编写更精确代码,解构(destructuring)是最引人注目之一。首先我们看看什么是解构?
解构是用来分配表达式充实到复杂对象或数组等数据结构中,你可以通过文字符号来发现是否使用了解构,比如对于对象使用了一对括号{};而对于数组使用[],这些符号中的分配值都是从左到右。
//注意下面等号之间的方括号 [ 和 ] 表示这是进行解构分配
var [x, y] = z;
//这是对象的结构分配
var { a, b } = c;
// 与正常赋值分配混合在一起使用
var { a, b } = c,
x = 12 + 1;
// 注意 shadowing!
var { a, b } = c,
x = 12 + 1,
[x, y] = [1, 2];
// x值是 1.
数组解构分配
通常一个数组的写法如下:
[1, 2, 3] // 一个数组符号.
解构分配是试图从左边获得名称,逐个向右直至到达数组最右边,如果分配赋值等号两边个数不是一样的,左边个数大于右边,那么右边值从左边的第一个开始填入赋值,左边多余的就被填入undefined;如果左边个数小于右边个数,那么也是从左边第一个开始填入赋值,右边多余的忽视。
var [a, b] = [1, 2, 3];
这里左边是两个元素[a,b],而右边是三个元素,右边比左边多:</