美文网首页
ES6中扩展运算符(spread)和剩余运算符(rest)详解

ES6中扩展运算符(spread)和剩余运算符(rest)详解

作者: loycoder | 来源:发表于2017-11-15 14:08 被阅读846次

    在ES6中。 三个点(...) 有2个含义。分别表示 扩展运算符 和 剩余运算符。写了几个demo测试。

    /******************扩展运算符(spread)********************/
    
         //demo 1  传递数据代替多个字符串的形式
         function  test(a,b,c){
             console.log(a);
             console.log(b);
             console.log(c);
         }
    
         var arr = [1, 2, 3];
         test(...arr);
        
    
         //demo2 将一个数组插入到另一个数据中
         var arr1 = [1, 2, 3,4];
         var arr2 = [...arr1, 4, 5, 6];
         console.log(arr2);
    
    
         //demo3  字符串转数据
         var str='loycoder';
         var arr3= [...str];
         console.log(arr3);
    
     /******************剩余运算符(rest)********************/
    
      //demo4  当函数参数个数不确定时,用 rest运算符
        function rest01(...arr) {
            for (let item of arr) {
                console.log(item);
            }
        }
        rest01(1, 3, 5);
    
        //demo5 当函数参数个数不确定时的第二种情况
        function rest02(item, ...arr) {
            console.log(item);
            console.log(arr);
        }
        rest02(1, 2, 34);
    
        //demo6 rest运算符配合 解构使用:
        var [a,...temp]=[1, 2, 4];
        console.log(a);
        console.log(temp);
    

    最后总结:

    扩展运算符用三个点号表示,功能是把数组或类数组对象展开成一系列用逗号隔开的值
    rest运算符也是三个点号,不过其功能与扩展运算符恰好相反,把逗号隔开的值序列组合成一个数组

    当三个点(...)在等号左边,或者放在形参上。为 rest 运算符
    当三个在等号右边,或者放在实参上,是 spread运算符

    或者说:

    放在被赋值一方是rest 运算符。放在赋值一方式 spread运算符。

    相关文章

      网友评论

          本文标题:ES6中扩展运算符(spread)和剩余运算符(rest)详解

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