ES6 学习(其他解构篇)

- 解构的用途

** 可以指定参数的默认值,节省代码

交换变量值

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 } };

推荐阅读更多精彩内容