JS的解构赋值

134 阅读1分钟

JS的解构赋值是ES6新增的一种赋值方法,一般分为对象解构与数组解构两种形式;

对象解构赋值:

let obj = {

     x: 'Json',

     y: 25,

}

let {x, y} = person;

console.log(x,y); // Json 25

var o = {p: 42, q: true};

var {p: foo, q: bar} = o; // 将o的p值赋给变量foo,将o的q值赋值给变量bar。

var {p: foo, q: bar} = o;等价于({p: foo, q: bar} = o);

数组结构赋值:

let [x, y] = ['a', 'b', 'c']; 

console.log(x,y); // a b

注意点:

  • 解构赋值等号两边结构需要一样,所有变量才能正常解析赋值
  • 若左边结构少于右边,左边按结构赋值,右边多余不管
  • 若右边结构少于左边,左边结构将不赋值,为undefined,若左边给默认值如:
let {x,y = 3} = {1}; x = 1, y = 3; 
  • 凡是有默认值,若正常赋值,默认值会被覆盖
  • 不能将数组结构赋值给对象的解构赋值,如:
const {x, y} = ['a', 'b'];x,y值将为undefined