美文网首页
ES6-解构赋值

ES6-解构赋值

作者: zhenghongmo | 来源:发表于2020-03-13 16:36 被阅读0次

    语法

    • 可以将值从数组或属性从对象提取到不同的变量中。
    • 表达式左边定义了要从原变量中取出什么变量。
    var a,b,rest;
    
    [a,b] = [1,2];          //a=1,b=2
    
    [a,b,...rest] = [1,2,3,4,5];     //a=1,b=2,rest=[3,4,5]
    
    ({a,b} = {a:10,b:20});        //a=10,b=20
    
    ({a,b,...rest} = {a:10,b:20,c:30,d:40});      //a=10,b=20,rest={c:30,d:40}
    

    解构数组

    数组解构赋值

    let [a,b,c] = [1,2,3];
    let [a,[b],c] = [1,[2],3]
    //a=1,b=2,c=3
    let [a] = 1 //报错!
    

    默认值

    let [a,b=2] = [3] //a=3,b=2
    
    let [a=2,b=3] = [undefined,null]  //a=2,b=null
    
    let [a=1,b=a] = [2]   //a=2,b=2
    

    交换变量

    var a=1;
    var b=2;
    [a,b] = [b,a];
    //a=2,b=1
    

    忽略某些值

    var arr=[1,2,3,4]
    var [a,,,c] = arr
    //a=1 c=4
    

    剩余数组

    var [a,...b] = [1,2,3,4]
    //a=1 ,b=[2,3,4]
    ------------------------
    //不能将逗号放在剩余元素右面,因为剩余元素必须是数组的最后一个元素。
    var [a, ...b,] = [1, 2, 3];
    // SyntaxError: rest element may not have a trailing comma
    
    

    解构对象

    基本赋值

    var o = {a:1,b:2}
    
    var{a,b} = o;
    

    给新的变量名赋值

    • 可以从一个对象中提取变量并赋值给和对象属性名不同的新的变量名。
    var o = {p: 42,q: true};
    
    var{p:foo,q:bar} = o;
    
    //foo =42, bar = true
    

    默认值

    var {a=10,b=5} = {a: 3}
    a//3
    b//5
    
    • 给新的变量命名并提供默认值
    var {a:aa = 10, b:bb = 5} = {a: 3};
    
    console.log(aa); // 3
    console.log(bb); // 5
    

    相关文章

      网友评论

          本文标题:ES6-解构赋值

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