美文网首页
rest 参数与扩展运算符-ES6初学习

rest 参数与扩展运算符-ES6初学习

作者: 程咸菜 | 来源:发表于2017-02-06 11:04 被阅读0次

    rest 参数

    rest 参数叫做不定(剩余)参数,写法就是 ... 返回数组结构。这个 ... 必须要加到最后一项。只能在结构中的最后。

    var [a,b,c] = [1,2,3,4,5,6,7];      
    console.log(a);     
    console.log(b);     
    console.log(c);     
    var [aa,bb,...cc] = [1,2,3,4,5,6,7];      
    console.log(aa);     
    console.log(bb);     
    console.log(cc);         
    

    这个例子中 rest 参数不能放在 aa 或者 bb 的前面,只能放 cc 的前面。数据的返回格式是数组。
    在函数中也可以有 rest 参数。
    function show(a,b,...c){               
        console.log(c)             
    };                 
    show(1,2,3,4,5,6);            
    

    在函数的位置中也是包括在最后的。
    函数的 length 是不包括 rest 参数的。这句话的意思是 ... 是不包括在函数的 length 中的。
    function show(a,b,...c){               
        console.log(show.length)             
    }; //长度返回 2 不是 3 这说明 ...c 没有包括进去      
    

    扩展运算符 ...

    扩展运算符 ... 是 rest 参数的逆运算。

    var arr = [1,2,3,4,5,6,7];    
    console.log(arr);    
    console.log(...arr);      
    

    把数组再次转化为字符串的形式
    同样的函数也是可以的,
    var arr = [1,2,3];    
    function show(a,b,c){     
        console.log(a);     
        console.log(b);     
        console.log(c);     
    };     
    show(...arr);      
    show(arr);                  
    

    扩展运算符可以转的数据结构是有遍历器接口的都可以转。在ES6中,有三类数据结构原生具备Iterator接口:数组、某些类似数组的对象、Set和Map结构,对象(Object)之所以没有默认部署Iterator接口,是因为对象的哪个属性先遍历,哪个属性后遍历是不确定的,需要开发者手动指定。这里推荐一篇文章 Iterator接口

    相关文章

      网友评论

          本文标题:rest 参数与扩展运算符-ES6初学习

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