11. ES6

一、数组的解构赋值

ES6允许我们在左边使用这个表达式来给左边三个元素赋值

var [el1, el2, el3] = [1, 2, 3, 4, 5];  // el1 = 1,  el2 = 2,  el3 = 3

通过变量名交换变量的值

var [el1, el2, el3] = [1, 2, 3, 4, 5];
[el1, el2] = [el2, el1];

解构赋值也可以嵌套

var value = [1, 2, [3, 4, 5]];
var [el1, el2, el3] = value;  // el3 = [3, 4, 5]
var [dl1, dl2, [dl3, dl4]] = value;  // dl3 = 3

可以通过简单地在指定位置省略变量来忽略数组中的某个元素:

var value = [1, 2, 3, 4, 5];
var [el1, ,el3, ,el5] = [1, 2, 3, 4, 5];  // el3 = 3, el5 = 5

指定默认值:

var [firstName = "John", lastName = "Doe"] = [];

rest参数(...变量名)让事情变得更有趣,它使你可以得到数组中“剩余“的元素。

var value = [1, 2, 3, 4, 5];
var [el1, el2, el3, ...tail] = value;  // tail = [4, 5]

返回数组函数:

function tuple() {
    return [1, 2];
}
var [first, second] = tuple();  // first = 1, second = 2

二、对象的解构赋值

对象解构赋值也可以使用默认值:

var {firstName = "John", userLastName = "Doe"} = {};  // firstName = "john", userLastName = "Doe"

...

...

原文地址:https://www.cnblogs.com/zouxinping/p/5941971.html