es6关于函数的拓展1

1、函数的参数默认值相对于

es6关于函数的拓展1

在实参是undefined的情况下会生效,其他的false, null, ""都会正常的赋值

2、参数默认值相对于解析构值的默认值,在调用函数都为填写实参的情况下,都能够调用,但一旦调用的参数未写全时,参数默认值依旧时可以,解析构值的默认值被替换了成实参了。

es6关于函数的拓展1

3、关于参数默认值的位置应当放在所有参数的末尾,因为实参和行参是一一对应的,放在末尾省略则使用默认参数值

es6关于函数的拓展1    

4、函数带有length属性,当参数有默认值时,length属性就会被影响,默认为默认参数为尾参数,若放在中间,则会导致后面的参数不计算在length中,导致length不准确

es6关于函数的拓展1

5、参数的作用域类似于在函数的作用域的外面再套了一层的参数的作用域,

es6关于函数的拓展1

6、当别人调用您封装的函数时,提醒对方哪一个参数是不能省略的,可以参数默认等于一个抛出异常的自定义的执行函数

es6关于函数的拓展1


总结:es6对于函数默认值的一些新的特性减少一些在函数调用时的出错(有说错的地方多多指教)