- 解构的用途
** 可以指定参数的默认值,节省代码
交换变量值
let [x, y] = [y, x];
提取JSON数据
var json = {
id: 1,
name: "Roy"
}
let {id, name} = json;
解析Map
let map = new Map();
map.set("name","Roy");
map.set("age","22");
for(let [k, v] of map){
console.log(k, v);
}
- 字符串解构赋值
字符串解构会转换成一个类似数组的对象
let [a, b, c] = "Roy";
a // "R"
b // "o"
c // "y"
- 函数解构赋值
function add([x = 1, y = 2]){
console.log(x+y);
}
add([1, 2]); // 3
add([1]); // 3
add([0,1]); // 2
- 圆括号问题
圆括号尽量不要在解构中使用
报错例子
let [(a)] = [1];
let { a: (b) } = {};
let { o: ({ p: p }) } = { o: { p: 2 } };