搞懂函数参数这三种形式,就能够完美替换不建议使用的arguments

点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!

有关函数的参数,原来有一些设计的比较糟糕的地方,例如arguments。一个像数组又不是真正数组的"东西"(关于它的详细使用可以参数我之前写的一篇文章)。可以认为它是一个类数组对象。它的使用有太需要注意的地方,很容易导致错误。

然而,新的语法对参数设计做了一些改善。主要有三个方面,默认参数,不定参数,拓展参数。

一、默认参数

搞懂函数参数这三种形式,就能够完美替换不建议使用的arguments

输出:Hello 小郑搞码事

可以在函数括号里设置默认值。当执行时没有传参数时就默认使用它。

二、不定参数

搞懂函数参数这三种形式,就能够完美替换不建议使用的arguments

输出:Hello 小郑 小郑搞码事

可以注意到不定参数是使用数组(这里:name)来表示多个参数。函数里我用 reduce方法将它遍历了出来。

三、扩展参数

搞懂函数参数这三种形式,就能够完美替换不建议使用的arguments

输出:Hello 小郑 小郑搞码事

可以看到,扩展参数则是将多个参数映射到一个数组。扩展参数和不定参数恰好是相反的两个模式。

最后对比arguments

以上不定参数相对于argumnents来说,它是一个完全的数组。更加方便我们来使用,所以, 建议使用不定参数来代替arguments。当然,如果在ECMAScript6中定义了'use strict',arguments的使用也基本被限制了,所以我们应该尽量使用新的函数参数。


分享到:


相關文章: