点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!
有关函数的参数,原来有一些设计的比较糟糕的地方,例如arguments。一个像数组又不是真正数组的"东西"(关于它的详细使用可以参数我之前写的一篇文章)。可以认为它是一个类数组对象。它的使用有太需要注意的地方,很容易导致错误。
然而,新的语法对参数设计做了一些改善。主要有三个方面,默认参数,不定参数,拓展参数。
一、默认参数
![搞懂函数参数这三种形式,就能够完美替换不建议使用的arguments](http://p2.ttnews.xyz/loading.gif)
输出:Hello 小郑搞码事
可以在函数括号里设置默认值。当执行时没有传参数时就默认使用它。
二、不定参数
![搞懂函数参数这三种形式,就能够完美替换不建议使用的arguments](http://p2.ttnews.xyz/loading.gif)
输出:Hello 小郑 小郑搞码事
可以注意到不定参数是使用数组(这里:name)来表示多个参数。函数里我用 reduce方法将它遍历了出来。
三、扩展参数
输出:Hello 小郑 小郑搞码事
可以看到,扩展参数则是将多个参数映射到一个数组。扩展参数和不定参数恰好是相反的两个模式。
最后对比arguments
以上不定参数相对于argumnents来说,它是一个完全的数组。更加方便我们来使用,所以, 建议使用不定参数来代替arguments。当然,如果在ECMAScript6中定义了'use strict',arguments的使用也基本被限制了,所以我们应该尽量使用新的函数参数。
閱讀更多 小鄭搞碼事 的文章