es6之解构赋值
---恢复内容开始---
es6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构赋值。
以前我们都是申明一个变量,然后给这个变量赋值,只能直接指定值。比如:
var a = 1; var b=2 ; var c = 3;这样;
而es6给我们带来了新的赋值写法,使我们在工作中,少写了很多代码。下面我们来看看es6是怎么赋值的。
var [a,b,c]=[1,2,3]
这样的代码表示,按照位置的对应关系对变量赋值。
还可以这样:
let [a , [ b , c ], d ] = [1, [ 2, 3 ] , 4]
let [x, , y] = [1, , 3]
let [x,...y] = [1,2,3,4] x //1 y // [2,3,4]
这些都是可以解构成功的,如果解构不成功,就得到undefined,比如
let [x,y] = ['a'] x //a y //undefined
对象的解构赋值
var {bar,fo} = {bar:'aaaa',fo:'bbb'}
bar //'aaaa'
fo //'bbb'
对象的解构赋值与数组有一个重要的不同,数组的元素是按次序排列的,变量的取值由它的位置决定;
而对象的属性没有次序,变量必须与属性同名,才能取到正确的值
var {baz} = {foo:'aaa',bar:'bbb'} //undefined
由于右边的变量中没有对应的同名属性,所以解构失败;