JavaScript高阶函数指接收函数为参数或返回函数的函数,依托函数是一等公民的特性,常见于map、filter、reduce等数组方法,用于抽象逻辑、组合行为与延迟执行。
JavaScript函数式编程是一种以函数为基本单元
、强调不可变数据和无副作用操作的编程范式。它的核心支柱之一,就是高阶函数——它不是某种“高级技巧”,而是让函数真正“活起来”的基础能力。
一个函数只要满足下面任意一条,就是高阶函数:
map、filter、sort 接收的回调函数)createGreeter("Hello") 返回一个能打招呼的函数)关键在于:JavaScript 把函数当作“一等公民”,可以赋值、传参、返回、存进数组或对象——没有这个前提,高阶函数就无从谈起。
它们已经深度融入日常开发,用法自然但逻辑清晰:
map():对每个元素执行函数,返回新数组(不修改原数组)filter():用条件函数筛选元素,返回符合条件的新数组reduce():用累加函数把数组“压”成一个值(如求和、扁平化、分组)例如:[1,2,3].map(x => x * 2) 得到 [2,4,6];这里箭头函数就是被传入的“行为”,map 是调度这个行为的高阶函数。
它让代码从“怎么做”转向“做什么”:
compose(f, g) 把两个函数串成一个,像流水线一样处理数据createApiCaller(baseUrl) 返回带预设地址的请求函数本质上,高阶函数是把“动作”变成可传递、可组装、可配置的值。
基本上就这些。