变量解构赋值
以前我们为变量赋值要这样:
let a = 1;
let b = 2;
现在ES6可以这样:
let {a, b} = [1, 2];
ps:需要注意,左右需要互相对应
let [a,b,[c,d]] = [1,2,[3,4]]; //左右互相对应
对象解构赋值:
let [a, b] = {a:1, b:2}
解构赋值默认值,假如解构的值不够或者为'undefined'就可以生效默认值
let [a,b="默认值"] = [1];
如果为null,则解构成:null
注意:如果要将一个已经声明的变量用于解构赋值,必须非常小心。
// 错误的写法
let x;
{x} = {x: 1}; // SyntaxError: syntax error
因为 JavaScript引擎会将{x}理解成一个代码块,从而发生语法错误。只有不将大括号写在行首,避免 JavaScript 将其解释为代码块,才能解决这个问题。
解决办法:将整个解构赋值语句,放在一个圆括号里面,就可以正确执行。
// 正确的写法
let x;
({x} = {x: 1});