●目次
JavaScriptの関数は、コードを再利用しやすくし、プログラムを効率的に書くための重要な要素です。
関数とは?
関数は、一連の処理をまとめたブロックで、何度でも呼び出して使うことができます。
関数を使うことで、重複するコードを減らし、メンテナンスしやすいコードを書くことができます。
関数-基本構文
function 関数名(引数1, 引数2, ...) {
// 処理内容
return 戻り値;
}
関数の種類
JavaScriptには、いくつかの関数の書き方があります。それぞれの書き方には特性があるため、使い分けが重要です。
関数宣言
最も一般的な書き方で、function
キーワードを使って関数を定義します。
関数宣言された関数は、コードのどこからでも呼び出せます。
js
function greet(name) {
return "Hello, " + name + "!";
}
console.log(greet("Alice")); // "Hello, Alice!"
関数式
変数に関数を代入する形で定義する方法です。
この場合、関数が定義された後でないと呼び出せません。
js
const greet = function(name) {
return "Hello, " + name + "!";
};
console.log(greet("Bob")); // "Hello, Bob!"
アロー関数
ES6で導入されたシンプルな構文の関数です。
特にコールバック関数でよく使われ、this
の扱いが通常の関数と異なる特徴があります。
js
const greet = (name) => "Hello, " + name + "!";
console.log(greet("Charlie")); // "Hello, Charlie!"
関数の引数と戻り値
関数は引数(パラメータ)を受け取り、その結果を return
で返すことができます。
引数(Parameters)
関数に渡されるデータは引数と呼ばれます。
引数は、関数に渡す入力データで、関数内部の処理に使われます。
関数定義時に引数の名前を指定し、関数呼び出し時に値を渡します。
function add(a, b) {
return a + b;
}
console.log(add(2, 3)); // 5
- デフォルト引数:
引数に初期値を設定することができ、引数が渡されなかった場合にデフォルト値が使用されます。
function greet(name = "Guest") {
return "Hello, " + name + "!";
}
console.log(greet()); // "Hello, Guest!"
console.log(greet("David")); // "Hello, David!"
戻り値
関数は return
キーワードを使って、計算結果や値を返します。
戻り値は、関数が実行後に返す出力データで、関数外でその結果を利用するために使います。
return
がない場合、関数は undefined
を返します。
function multiply(a, b) {
return a * b;
}
console.log(multiply(4, 5)); // 戻り値 20
引数は関数の「インプット」、
戻り値は関数の「アウトプット」として理解するとわかりやすい
関数のスコープとクロージャー
関数の中で定義された変数は、関数スコープに属し、関数外からアクセスできません。また、関数は定義された時のスコープを保持するクロージャーという機能を持ちます。
function outer() {
let outerVar = "外側の変数";
function inner() {
console.log(outerVar); // "外側の変数"
}
inner();
}
outer();
コールバック関数
コールバック関数とは、別の関数に引数として渡される関数のことです。
非同期処理やイベント処理などで頻繁に使われます。
function doTask(callback) {
console.log("タスク開始");
callback();
console.log("タスク終了");
}
function notify() {
console.log("通知:タスクが完了しました!");
}
doTask(notify);
再帰関数
再帰関数は、自分自身を呼び出す関数です。
計算のステップを繰り返すことで、複雑な問題を解決する際に使用されます。
例えば、階乗の計算などで使われます。
function factorial(n) {
if (n === 1) return 1;
return n * factorial(n - 1);
}
console.log(factorial(5)); // 120
即時実行関数
即時実行関数は、定義した直後に実行される関数です。
スコープの制御や一度だけ実行したい処理に便利です。
(function() {
console.log("IIFEが実行されました!");
})();
まとめ
JavaScriptの関数は、単に処理をまとめるだけでなく、引数や戻り値、コールバック、クロージャー、再帰など、さまざまな特性を持っています。
これらを活用することで、コードがより効率的で再利用可能になります。