在书写形参时,可以直接给形参赋值,赋的值及为默认值,默认值当在函数调用时,如果没有给该参数赋值(给它的值为undefined)的时候将自动使用默认值
    形参和es6的let与const声明一样,具有作用域,并且根据参数声明顺序,存在暂时性死去,说白啦不能再形参声明前调用
    **

    1. function sum(a, b = 1, c = 2) {
    2. return a + b + c;
    3. }
    4. console.log(sum(10, undefined, undefined)) // 输出结果为 13

    扩展:对argument的影响
    当个函数加上参数默认值时,该函数将自动变量严格模式下的规则,会让argument与其形参脱离,

    1. function sum(a, b = 1, c = 2) {
    2. console.log(arguments)
    3. console.log('a的值:'+a,'b的值:'+b,'c的值:'+c)
    4. return a + b + c;
    5. }
    6. console.log(sum(10, undefined, undefined)) // 输出结果为 13

    argument的参数如下图
    image.png
    从图中可以看出argument的第二参数与第三个参数为undefined 但是第二参数与第三个参数都是默认值