fun参数数量处理

  • 首先,定义foo方法如下:

     function foo(a, b){
          console.log(a+b);
     }
    

    此时由于js不要求函数传入的参数和函数定义的参数完全对应,数量也可以不一样,因此我们可以这样传:
    foo(1, 2, 3, 4);
    foo(1);
    对于这种参数不一定的情况,我们可以通过arguments关键字来获取所有的参数,arguments是类似于数组但结构是map的对象,里面存放的是参数索引-参数的值的映射关系,我们可以遍历得到:
    for (let i = 0; i < arguments.length; i++) {
    console.log(arguments[i]);
    }
    不过,每次都得通过这样的方式获取所有的参数,很不方便,那么有没有一种方式,让我们方便的获取哪些除了必须参数之外的不定参数呢?

  • rest参数
    ES6最新引入了rest参数,它就是来表示形参中,除了必须参数之外的所有参数,此时我们这样定义函数foo:
    function foo(a,b, ...rest){
    //use a,b
    console.log(rest);
    }
    由于rest本身是个数组,所以我们可以获取里面的参数。另外,如果连必须参数都没有传递够,那么它就是空数组。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,404评论 19 139
  • 如何控制alert中的换行?\n alert(“p\np”); 请编写一个JavaScript函数 parseQu...
    heyunqiang99阅读 4,722评论 0 6
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,378评论 2 17
  • 函数就是最基本的一种代码抽象的方式。 定义函数function abs(x) {if (x >=0){return...
    _我和你一样阅读 3,247评论 0 0
  • 文末有彩蛋。 想实现一个这样的动画: 废话不多说,直接上代码。 第一步:创建视图。 UIButto...
    碧霄问鼎阅读 10,255评论 10 58