ES6 的默认参数与剩余参数

216 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

本篇文章主要是讲解的是ES6当中的 默认参数和剩余参数的文章

参数默认值

在传进函数中的形参带有默认值

如何使用?

在书写形参时,直接给形参赋值,赋的值即为默认值 例如: function s(a, b = 10, c = 12) { return a + b + c; } s(12,undefined,5)//输出17 这样一来,当调用函数时。当我们没有给定值就会使用默认值,如果我们不想跳过当前给定下一个值,那么当前传参数的位置写上undefiend即可

注意

对arguments的影响 即:如果们为形参添加了默认值,则该函数会 自动形成 “严格模式” 即 arguments将不会与形参产生映射关系

留意暂时性死区 即:形参和ES6中的let或const声明一样,具有作用域,并且根据参数的声明顺序,存在暂时性死区 例如:

  function sum(a=b,b){
          return a+b;
   }
  sum(undefined,a) //会报错,因为这就相当于let在声明之前就使用  
                      

剩余参数

arguments的缺陷:
1. 如果和形参混合使用,容易导致混乱{严格模式,形参的改变}
2. 从语义上来说,使用arguments获取参数,由于形参缺失,无法从函数定义上理解函数的真实意图

ES6的剩余参数 专门用于收集末尾的所有参数,将其放置到一个形参数组中。关键词为 “...” “参数名”表示形参 “...” 表示在使用时将没有形参的参数放置到 “参数名” 当中 “参数名”是一个数组,注意"..."所表示的是形参,而非实参 例:

   function sum(...jus){
            let sum=0;
            for(let i=0;i<jus.length;i++){
                sum+=jus[i]
            }
            return sum;
        }
        console.log(sum(5,6,7,2));

注意:

1. 一个函数只能存在一个剩余参数

2. 并且剩余参数必须是最后一个形参