ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のコールバック関数を理解する: 包括的なガイド
コールバック関数は、別の関数に引数として渡される関数です。これにより、関数が別の関数を呼び出すことができるようになり、非同期操作とモジュール式コード設計が可能になります。
コールバックは、別の関数に引数として渡され、何らかの操作が完了した後に実行される関数です。
function greet(name, callback) { console.log("Hello, " + name); callback(); } function sayGoodbye() { console.log("Goodbye!"); } greet("Alice", sayGoodbye); // Output: // Hello, Alice // Goodbye!
この例では、sayGoodbye は、greet に渡されるコールバック関数です。
同期コールバックは関数内で即時に実行されます。
例: 配列の反復
const numbers = [1, 2, 3, 4]; numbers.forEach(function(number) { console.log(number * 2); }); // Output: // 2 // 4 // 6 // 8
ここでは、forEach 内のコールバック関数が配列の各要素に対して実行されます。
非同期コールバックは、データの取得、タイマー、イベントの処理などのタスクに使用されます。これらは、現在の操作が完了した後に実行されます。
例: タイマー
console.log("Start"); setTimeout(function() { console.log("This runs after 2 seconds"); }, 2000); console.log("End"); // Output: // Start // End // This runs after 2 seconds
コールバックを受け入れるカスタム関数を作成できます。
例: 操作の実行
function performOperation(a, b, callback) { const result = a + b; callback(result); } performOperation(5, 3, function(result) { console.log("The result is:", result); }); // Output: // The result is: 8
コールバックを使用する場合、エラーをコールバック関数に渡して適切に処理できます。
例: エラーのシミュレーション
function fetchData(callback) { const error = false; const data = { id: 1, name: "Alice" }; if (error) { callback("Error occurred", null); } else { callback(null, data); } } fetchData(function(err, data) { if (err) { console.log(err); } else { console.log("Data fetched:", data); } }); // Output: // Data fetched: { id: 1, name: 'Alice' }
document.querySelector("button").addEventListener("click", function() { console.log("Button clicked!"); });
setTimeout(function() { console.log("This runs after 1 second"); }, 1000);
コールバックは便利ですが、ネストが深すぎるとコールバック地獄につながる可能性があります。
コールバック地獄の例:
getData(function(data) { processData(data, function(result) { saveData(result, function(response) { console.log("Data saved:", response); }); }); });
最新の JavaScript は、Promises または async/await を使用して、非同期操作をより明確に処理します。
コールバックを理解することは、JavaScript プログラミングをマスターするための基本的なステップです。
こんにちは、アバイ・シン・カタヤットです!
私はフロントエンドとバックエンドの両方のテクノロジーの専門知識を持つフルスタック開発者です。私はさまざまなプログラミング言語やフレームワークを使用して、効率的でスケーラブルでユーザーフレンドリーなアプリケーションを構築しています。
ビジネス用メールアドレス kaashshorts28@gmail.com までお気軽にご連絡ください。
以上がJavaScript のコールバック関数を理解する: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。