回调函数(Callback Functions):在JavaScript中,回调函数是作为参数传递给其他函数的函数。当执行某个操作完成后,主函数将调用回调函数来处理结果。这种机制常用于异步编程,例如处理AJAX请求或定时器事件。
以下是一个简单的示例,其中回调函数用于处理异步请求的结果:
function fetchData(callback) {
// 模拟异步请求
setTimeout(function() {
const data = '这是从服务器获取的数据';
callback(data); // 调用回调函数处理数据
}, 2000);
}
function processData(data) {
console.log('处理数据:', data);
}
fetchData(processData); // 将回调函数传递给fetchData函数
匿名函数(Anonymous Functions):匿名函数是没有名称的函数,它们可以被直接定义和使用。通常作为回调函数、立即执行函数或函数表达式中的函数。
以下是一个使用匿名函数作为回调函数的示例:
setTimeout(function() {
console.log('2秒后执行的匿名函数');
}, 2000);
匿名函数还可以通过赋值给变量或作为立即执行函数使用:
const greet = function(name) {
console.log('Hello', name);
};
greet('Alice'); // 输出: Hello Alice
// 立即执行函数
(function() {
console.log('这是一个立即执行函数');
})();
递归函数(Recursive Functions):递归函数是在函数体内调用自身的函数。通过这种方式,函数可以重复执行相同的操作,直到满足特定条件为止。
以下是一个计算阶乘的递归函数示例:
function factorial(n) {
if (n === 0) {
return 1; // 基准条件
} else {
return n * factorial(n - 1); // 递归调用
}
}
console.log(factorial(5)); // 输出:120
递归函数需要注意设置基准条件(停止递归)以避免无限循环,并确保每次递归调用都朝着基准条件靠近。