前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JavaScript中的高阶函数

JavaScript中的高阶函数

作者头像
刘亦枫
发布于 2020-03-19 09:16:43
发布于 2020-03-19 09:16:43
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

什么是高阶函数

高阶函数是对其他函数进行操作的函数,可以将它们作为参数或通过返回它们。简单来说,高阶函数是一个函数,它接收函数作为参数或将函数作为输出返回。 例如Array.prototype.map,Array.prototype.filter并且Array.prototype.reduce是一些高阶功能,内置的语言。

在《javascript设计模式和开发实践》中是这样定义的: 1.函数可以作为参数被传递; 2.函数可以作为返回值输出。

示例

Array.prototype.map

该map()方法通过调用作为输入数组中每个元素的参数提供的回调函数来创建一个新数组。该map()方法将从回调函数中获取每个返回值,并使用这些值创建一个新数组。传递给回调函数map()方法接受3个参数:element,index,和array。假设我们有一个数组,我们想要创建一个新数组,其中包含第一个数组的每个值的两倍。让我们看看如何使用和不使用高阶函数来解决问题。

不用高阶函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const arr1 = [1,2,3]; 
const arr2 = [];forlet i = 0; i <arr1.length; i ++{
arr2.push(arr1 [i] * 2; }//打印[2,4,6] console.log(arr2);

使用高阶函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const arr1 = [1,2,3];
const arr2 = arr1.map (function (item) {   return item * 2; }
console.log(arr2)

结论:

高阶函数是一个函数,它可以接收函数作为参数,甚至可以返回一个函数。高阶函数就像常规函数一样,具有接收和返回其他函数的附加能力,即参数和输出。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
高阶函数详解与实战训练
当大家看到这个面试题的时候,能否在第一时间想到使用高阶函数实现?想到在实际项目开发过程中,用到哪些高级函数?有没有想过自己创造一个高阶函数呢?开始本篇文章的学习
前端迷
2019/08/15
7040
javascript常用技巧
map() (映射)方法最后生成一个新数组,不改变原始数组的值。其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
前端_AWhile
2019/09/16
7610
一篇文章把你带入到JavaScript中的闭包与高级函数
在JavaScript中,函数是一等公民。JavaScript是一门面向对象的编程语言,但是同时也有很多函数式编程的特性,如Lambda表达式,闭包,高阶函数等,函数式编程时一种编程范式。
达达前端
2019/11/19
7980
一篇文章把你带入到JavaScript中的闭包与高级函数
【前端】JavaScript 中数组的基本操作及优化题解
首先来看一道基础的题目,题目要求我们对数组中的所有数进行求和,然后计算出数组的平均值。以下是原题目以及初始解法:
CSDN-Z
2024/11/21
1080
【前端】JavaScript 中数组的基本操作及优化题解
一文带你了解JavaScript函数式编程?
函数式编程在前端已经成为了一个非常热门的话题。在最近几年里,我们看到非常多的应用程序代码库里大量使用着函数式编程思想。
猿哥
2019/08/09
5790
一文带你了解JavaScript函数式编程?
重新撸一遍javascript (二)
key必须是字符串,如果不是js会自动转为字符串,比如对象作为key会转化成 字符串[object Object]
lilugirl
2020/04/24
3430
重新撸一遍javascript (二)
一文带你了解JavaScript 函数式编程
函数式编程在前端已经成为了一个非常热门的话题。在最近几年里,我们看到非常多的应用程序代码库里大量使用着函数式编程思想。
心莱科技雪雁
2019/08/23
1.1K0
一文带你了解JavaScript 函数式编程
【收藏】JavaScript数组方法速查手册极简版
JavaScript数组方法速查手册极简版中共收了32个数组的常用方法和属性,并根据方法的用途进行重新排序和分类,在文中简要的介绍了方法作用和用例说明。收藏备用吧!
毛瑞
2019/04/30
5070
【收藏】JavaScript数组方法速查手册极简版
常用的数组高阶函数
FGGIT
2024/10/15
970
【基于 JS 函数式编程 - 2】高阶函数 | 函数代替数据传递 | 函数是一等公民 | 闭包 | 使用高阶函数实现抽象 | 数组的高阶函数
函数作为参数传递是js规范中的一部分。而, 允许以函数代替数据传递是一个值得关注的概念。
前端修罗场
2023/10/07
2250
100个最常问的JavaScript面试问答-第3部分(共10部分)
100个最常问的JavaScript面试问答-第3部分 问题21.如何在JavaScript中清空数组? 问题22.如何从数组中删除重复项? 问题23.如何检查值是否为数组? 问题24.如何实施Array.prototype.map()方法 问题25.如何实现Array.prototype.filter()方法 问题26.如何实现Array.prototype.reduce()方法 问题27.JavaScript中的名称函数是什么? 问题28.可以将匿名函数分配给变量并将其作为参数传递给另一个函数吗? 问题
海拥
2021/08/23
1.6K0
【JS】530- 一文看懂高阶函数
高阶函数 函数可以作为参数传递 函数可以作为返回值输出 函数作为参数传递 回调函数 在ajax异步请求的过程中,回调函数使用的非常频繁 在不确定请求返回的时间时,将callback回调函数当成参数传入
pingan8787
2020/03/19
7110
【JS】530- 一文看懂高阶函数
22个超详细的 JS 数组方法
https://juejin.cn/post/6907109642917117965
前端达人
2021/01/27
3.4K0
【JS必知必会】高阶函数详解与实战
当大家看到这个面试题的时候,能否在第一时间想到使用高阶函数实现?想到在实际项目开发过程中,用到哪些高级函数?有没有想过自己创造一个高阶函数呢?开始本篇文章的学习
coder_koala
2019/07/30
7860
for 循环不是目的,map 映射更有意义!【FP探究】
在 JavaScript 中,由于 Function 本质也是对象(这与 Haskell 中【函数的本质是值】思路一致),所以我们可以把 Function 作为参数来进行传递!
掘金安东尼
2022/09/19
2720
for 循环不是目的,map 映射更有意义!【FP探究】
掌握JavaScript高阶函数,让你的代码更灵活
大家好,今天我们要聊聊一个超级实用的小技巧——高阶函数。别被这个高大上的名字吓到,其实它非常好理解,而且用好了,绝对能让你的代码更简洁、更高效。
前端达人
2024/07/31
1300
掌握JavaScript高阶函数,让你的代码更灵活
写JavaScript函数不得不知的高级技巧
对于我们程序员来说,写函数是再熟悉不过的事情了,不管我们要实现什么样的功能,都需要通过函数来完成。在JavaScript里面,函数拥有非常高的特权,甚至是一等公民,因此也跟Kotlin一样支持多种编程范式。
写代码的阿宗
2020/10/22
6321
写JavaScript函数不得不知的高级技巧
高阶函数及 map、reduce、filter 的实现
2020 开年国家经历了不少困难,最为凶猛的局势就是新型冠状病毒的蔓延,国务院最终决定春节假期延长至==2 月 2 号==;公司决定 3 - 7 号在家用 vpn 办公。10 号正式在职场上班;
Krry
2020/02/05
1.1K0
前端学习(40)~js学习(十七):数组的常见方法&数组的遍历
unshift():在数组最前面插入一个或多个元素,返回结果为该数组新的长度。插入元素后,其他元素的索引会依次调整。
Vincent-yuan
2020/03/19
1.9K0
看完这几道 JavaScript 面试题,让你与考官对答如流(中)
IIFE或立即调用的函数表达式是在创建或声明后将被调用或执行的函数。 创建IIFE的语法是,将function (){}包裹在在括号()内,然后再用另一个括号()调用它,如:(function(){})()
前端小智@大迁世界
2022/06/15
2K0
推荐阅读
相关推荐
高阶函数详解与实战训练
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验