高阶函数与递归
约 302 字大约 1 分钟
布欧-Lewyon
2026-05-16
首页 › JavaScript › 函数与作用域 › 高阶函数与递归
高阶函数
高阶函数是接受函数作为参数或返回函数的函数。
函数作为参数
// 回调函数
function processArray(arr, callback) {
const result = [];
for (let item of arr) {
result.push(callback(item));
}
return result;
}
const doubled = processArray([1, 2, 3], n => n * 2);
console.log(doubled); // [2, 4, 6]函数作为返回值
function multiplyBy(factor) {
return function(number) {
return number * factor;
};
}
const double = multiplyBy(2);
const triple = multiplyBy(3);
console.log(double(5)); // 10
console.log(triple(5)); // 15递归
// 阶乘
function factorial(n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
console.log(factorial(5)); // 120
// 斐波那契
function fibonacci(n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
// 优化记忆化
function fibonacciMemo(n, memo = {}) {
if (n in memo) return memo[n];
if (n <= 1) return n;
return memo[n] = fibonacciMemo(n - 1, memo) + fibonacciMemo(n - 2, memo);
}小结
| 概念 | 要点 |
|---|---|
| 高阶函数 | 函数作为参数或返回值 |
| 回调 | 异步操作、事件处理 |
| 递归 | 函数调用自身,需终止条件 |
| 记忆化 | 缓存计算结果,优化性能 |
上一节:this 关键字与箭头函数 下一节:对象与原型链
