变量的解构赋值

2019-03-05  本文已影响0人  Home_2453

ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这被成为解构赋值。

1、数组的解构赋值

let [a,b,c] = [1,2,3];

上面的代码表示,可以从数组中提取值,按照对应位置,对变量赋值。
默认值:
解构赋值允许存在默认值

let [foo = true] = [];
foo  //  true
let [x,y = 'b'] = [x = 'a'];
// x = 'a' , y = 'b'

2、对象的解构赋值

let {bar,foo} = {bar:'aaa' , foo:'bbb'};
// bar = 'aaa' , foo = 'bbb'

对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

let obj = {
        a:1,
        b:2,
        c:3
}
let {a,b,c} = obj;
//a = 1 , b = 2 , c = 3;

3、字符串的解构赋值
字符串也可以解构赋值。这是因为,字符串被转换为一个类似数组的对象。

let [a,b,c,d,e] = 'hello';
a // 'h'    b // 'e'    c // 'l'    d 'l'    e 'o'

4、函数的解构赋值
函数的参数也可以使用解构赋值

function fun([a,b]){
   console.log(a + b)
}
fun([1,2]);

函数的解构赋值也能使用默认值
5、解构赋值的用处
解构赋值对提取JSON对象中的数据,尤其有用

let jsonData = {
    id:42,
    status:'ok',
    data:[123,456]
}
let { id,status,data:number } = jsonData;
console.log( id,status,number );
//  42,'ok',[123,456]
上一篇 下一篇

猜你喜欢

热点阅读