zoukankan      html  css  js  c++  java
  • [ES6] 23. Rest Parameters & Spread Parameters

    Rest Parameters:

    In ES5, when you don't know how many paramters will be passed in, you can use arguments:

    let sum = function(){
        let result = 0;
        for(let i = 0; i < arguments.length; i++){
            result += arguments[i];
        }
        return result;
    }
    
    let result = sum(1,2,3);

    In ES6, you can use Rest params:

    let sum = function(...numbers){
        
        let result = 0;
        for(let i = 0; i < numbers.length; i++){
            result += numbers[i];
        }
        return result;
    };
    describe("rest paramters", function(){
    
        it("is like varargs", function(){
        
            let doWork = function(name, ...numbers){
            
                let result = 0;
                numbers.forEach(function(n){
                    result += n;
                });
                
                return result;
            };
            
            let result = doWork("Scott", 1,,2,3);
            expect(result).toBe(6);
        });
    });

    ...Spread:

    It looks the same as Rest Parameters, Spread uses to spread an array.

    it("should sum up", function(){
        let doWork = function(x,y,z){
            return x+y+z;
        };
        
        expect(doWork(...[1,2,3])).toBe(6);
    });
    <!DOCTYPE html>
    <html>
      <head>
        <script data-require="traceur@*" data-semver="0.0.0-20140302" src="https://traceur-compiler.googlecode.com/git/bin/traceur.js"></script>
        <script>
         traceur.options.experimental = true;
        </script>
        <script data-require="traceur@*" data-semver="0.0.0-20140302" src="https://traceur-compiler.googlecode.com/git/src/bootstrap.js"></script>
        <link rel="stylesheet" href="style.css" />
        <script src="script.js"></script>
      </head>
    
      <body>
          <script type="module">
                let a = [4,5,6];
                let b = [1,2,3, ...a, 7,8,9];
                document.write(b); //1,2,3,4,5,6,7,8,9
          </script>
      </body>
    </html>
  • 相关阅读:
    JMeter 分布式调度压测部署
    jmeter 命令行运行与生成报告
    Apache启动报错:Invalid command 'AuthType', perhaps misspelled or defined by a module not included in it
    【TestNG】TestNG使用教程详解
    这才是Tomcat内存配置的正确姿势
    Tomcat GC参数详解
    MANIFEST.MF文件详解
    CMD命令打包文件夹成jar
    常用MIME类型
    表单序列化
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4470997.html
Copyright © 2011-2022 走看看