基本用法
ES6允许按照一定的模式,从数组和对象中取值,对变量进行赋值,这被称为解构。
以前,变量赋值,只能是直接指定值
let a = 1;
let b = 2;
let c = 3;
ES6 允许写成下面这样。
let [a, b, c] = [1, 2, 3];
这种写法属于 模式匹配 只要等号两边的模式相同,左边的变量就会被赋予对应的
默认值
解构允许有默认值
let [a, b = '456'] = ['123']; // a = '123', b = '456'
let [a, b = '456'] = ['123', null]; // a = '123', b = null
let [a, b = '456'] = ['123', undefined]; // a = '123', b = '456'
ES6严格按照运算符(===)的原则,判断一个位置是否有值, 当数组成员严格等于 undefined时 默认的值才会生效, 所以第二条 b = null 默认值不生效
对象的解构赋值
let { foo, bar } = { foo: 'aaa', bar: 'bbb'};
// foo 'aaa'
// bar 'bbb'
对象的解构与数组的解构有一个重要的不同。数组的元素是按次序排列的,对象不是。变量必须与属性名称相同,才能取到值。
对象的解构赋值,可以很方便的将现有对象的方法,赋值到一个变量。
网友评论