一、数组的解构赋值
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"
...
...