前回は効率的なエラーチェックについて紹介しました。

今回は関数を極める応用テクニックについて紹介していきます。
![]() |
1冊ですべて身につくJavaScript入門講座 [ Mana ] 価格:2794円 |
JavaScriptの関数を極める!使い方から応用テクニックまで徹底解説
JavaScriptでプログラムを書くうえで欠かせないのが「関数」です。関数を適切に使いこなせば、コードの再利用性が向上し、より効率的で保守しやすいプログラムを作成できます。
この記事では、JavaScriptの関数の基本から応用テクニックまで詳しく解説していきます。
1. 関数の基本
まずは、関数の基本的な書き方から確認しましょう。
関数の宣言方法
関数を定義する方法は大きく分けて3つあります。
1. 関数宣言
function greet(name) {
return `こんにちは、${name}さん!`;
}
console.log(greet("太郎"));
2. 関数式
const greet = function(name) {
return `こんにちは、${name}さん!`;
};
console.log(greet("花子"));
3. アロー関数
const greet = (name) => `こんにちは、${name}さん!`;
console.log(greet("次郎"));
アロー関数は短く書けるため、特にシンプルな処理をする関数に向いています。
2. 関数の引数とデフォルト値
関数には引数を設定でき、デフォルト値を指定することも可能です。
function greet(name = "ゲスト") {
return `こんにちは、${name}さん!`;
}
console.log(greet()); // こんにちは、ゲストさん!
デフォルト値を設定すると、引数が渡されなかったときに自動で補完されます。
3. スコープとクロージャ
関数にはスコープ(変数の有効範囲)があります。
function outer() {
let message = "外側の関数";
function inner() {
console.log(message);
}
return inner;
}
const func = outer();
func(); // "外側の関数"
このように、関数の中に関数を作ると、内部の関数が外部の変数を記憶する「クロージャ」という仕組みが働きます。
4. コールバック関数
関数を引数として渡し、後で実行する仕組みを「コールバック関数」と呼びます。
function executeCallback(callback) {
console.log("処理を開始します...");
callback();
}
executeCallback(() => console.log("コールバックが実行されました!"));
イベント処理や非同期処理でよく使われます。
5. 高階関数
関数を引数に取る、または関数を返す関数を「高階関数」といいます。
function multiplyBy(factor) {
return function(number) {
return number * factor;
};
}
const double = multiplyBy(2);
console.log(double(5)); // 10
高階関数を使うと、柔軟なコードが書けるようになります。
6. カリー化
関数を分割して呼び出せるようにするテクニックが「カリー化」です。
const add = (a) => (b) => a + b;
console.log(add(5)(3)); // 8
カリー化は関数の再利用性を向上させるのに役立ちます。
7. 即時実行関数(IIFE)
定義と同時に実行される関数のことをIIFE(Immediately Invoked Function Expression)と呼びます。
(function() {
console.log("即時実行されました!");
})();
スコープを限定したい場合などに便利です。
まとめ
JavaScriptの関数を使いこなすために、以下のポイントを押さえましょう。
- 関数の基本的な書き方(関数宣言・関数式・アロー関数)
- 引数とデフォルト値の活用
- スコープとクロージャの理解
- コールバック関数の活用
- 高階関数とカリー化を利用した応用
- 即時実行関数の利用
これらのテクニックを活用して、より洗練されたコードを書いていきましょう。
参考リンク
- MDN: JavaScript関数
- JavaScriptのクロージャ解説
- 高階関数とカリー化以上が関数を極めた応用テクニックの紹介でした。
次回はユーティリティ関数について紹介します。