变量的解构赋值

基本用法

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'

对象的解构与数组的解构有一个重要的不同。数组的元素是按次序排列的,对象不是。变量必须与属性名称相同,才能取到值。

对象的解构赋值,可以很方便的将现有对象的方法,赋值到一个变量。

你可能感兴趣的:(变量的解构赋值)