[函数式]JavaScript面试问题:函数式编程( 二 )



arguments 对象是一个类似数组的对象 , 它具有我们传递给函数的参数 。类似数组的意思是它具有 length 属性 , 我们可以通过使用索引来获取项目 , 从而循环遍历所有项目 , 但是它没有像 map , reduce 或 filter 这样的数组方法 。
它仅得到传统函数的参数 。
例如 , 我们可以这样写:function foo() {console.log(arguments); } foo(1, 2, 3, 4, 5);
然后 console.log 将向我们返回传递给 foo 的参数 , 即1、2、3、4和5 。
箭头函数没有绑定到 arguments 对象 , 所以我们不能把所有的参数都用这个对象传递给箭头函数 。
for ... of循环也适用于 arguments 对象 , 因此我们可以如下遍历参数:function foo() {for (let arg of arguments) {console.log(arg);} } foo(1, 2, 3, 4, 5);
我们可以使用扩展运算符将参数转换为数组 。例如 , 我们可以这样写:function foo() {console.log([...arguments]); } foo(1, 2, 3, 4, 5);
然后 , 我们输出了[1,2,3,4,5] 。总结
JavaScript具有许多函数式编程功能 。函数是一等对象 , 这意味着它们像其他任何对象一样被对待 。
它还具有古怪的 , 类似于数组的参数 , 以获取传递给传统函数的参数 。
如果对你有所启发和帮助 , 可以点个关注、收藏 , 也可以留言讨论 , 这是对作者的最大鼓励 。
【[函数式]JavaScript面试问题:函数式编程】作者简介:Web前端工程师 , 全栈开发工程师、持续学习者 。


推荐阅读