コールバック関数: JavaScript では、コールバック関数は他の関数にパラメータとして渡される関数です。操作が完了すると、main 関数はコールバック関数を呼び出して結果を処理します。このメカニズムは、AJAX リクエストやタイマー イベントの処理など、非同期プログラミングでよく使用されます。
以下は、コールバック関数を使用して非同期リクエストの結果を処理する簡単な例です。
function fetchData(callback) {
// 模拟异步请求
setTimeout(function() {
const data = '这是从服务器获取的数据';
callback(data); // 调用回调函数处理数据
}, 2000);
}
function processData(data) {
console.log('处理数据:', data);
}
fetchData(processData); // 将回调函数传递给fetchData函数
匿名関数: 匿名関数は名前のない関数であり、直接定義して使用できます。通常は、コールバック関数、即時実行される関数、または関数式内の関数として使用されます。
無名関数をコールバック関数として使用する例を次に示します。
setTimeout(function() {
console.log('2秒后执行的匿名函数');
}, 2000);
匿名関数は、変数に代入することによって、または即時に実行される関数として使用することもできます。
const greet = function(name) {
console.log('Hello', name);
};
greet('Alice'); // 输出: Hello Alice
// 立即执行函数
(function() {
console.log('这是一个立即执行函数');
})();
再帰関数: 再帰関数は、関数本体内で自分自身を呼び出す関数です。このようにして、関数は特定の条件が満たされるまで同じ操作を繰り返し実行できます。
以下は、階乗を計算する再帰関数の例です。
function factorial(n) {
if (n === 0) {
return 1; // 基准条件
} else {
return n * factorial(n - 1); // 递归调用
}
}
console.log(factorial(5)); // 输出:120
再帰関数は、無限ループを回避するためにベースライン条件の設定 (再帰の停止) に注意を払い、各再帰呼び出しがベースライン条件に近づくようにする必要があります。