美文网首页
变量的解构赋值

变量的解构赋值

作者: Home_2453 | 来源:发表于2019-03-05 16:54 被阅读0次

    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]
    

    相关文章

      网友评论

          本文标题:变量的解构赋值

          本文链接:https://www.haomeiwen.com/subject/kmyouqtx.html