仮引数(パラメータ)とは
仮引数(パラメータ)は、関数やメソッドの定義において、その関数やメソッドが受け取ることができる引数(入力値)を指定するために用いられる変数です。
これは、関数やメソッドの本体内で、渡された実際の値(実引数)を参照するためのラベルのようなものと考えることができます。
関数やメソッドが呼び出されるとき、呼び出し元から渡される実際の値(実引数)は、その関数やメソッドの定義における対応する仮引数に「束縛」または「割り当て」されます。
これにより、関数やメソッドの本体内で、これらの値を操作したり、計算に使用したりすることが可能になります。
JavaScriptの関数で仮引数を使用する例
仮引数は関数の定義部分で使われ、関数が呼び出される際に実際に渡される値(実引数)に対応します。JavaScriptの関数で仮引数を使用する例を見てみます。
function add(a, b) {
return a + b;
}
この例では、add
は2つの仮引数 a
と b
を持つ関数です。この関数は、これら2つの数値の和を計算して返します。関数が実際に呼び出される際には、この2つの仮引数に対応する実際の値(例えば add(5, 3)
の 5
と 3
)が関数内で使用され、その和が返されます。
デフォルト引数
関数の仮引数にデフォルト値を設定することができます。呼び出し時にその引数が提供されない場合、デフォルト値が使用されます。
function greet(name = "Guest") {
return `Hello, ${name}!`;
}
console.log(greet("Alice")); // "Hello, Alice!"
console.log(greet()); // "Hello, Guest!"
レストパラメータ(残余引数)
関数に渡される引数の数が不定の場合、レストパラメータを使用して、引数を配列として受け取ることができます。
function sum(...numbers) {
return numbers.reduce((acc, current) => acc + current, 0);
}
console.log(sum(1, 2, 3, 4, 5)); // 15
分割代入 (Destructuring assignment) 構文
関数の引数にオブジェクトや配列が渡される場合、分割代入を用いて仮引数で直接そのプロパティや要素にアクセスすることができます。
function displayPerson({name, age}) {
console.log(`Name: ${name}, Age: ${age}`);
}
const person = {name: "John", age: 30};
displayPerson(person); // "Name: John, Age: 30"
コールバック関数(callback function)
関数を引数として別の関数に渡し、その関数内で実行することができます。これは、非同期処理やイベントハンドリングなどでよく使用されます。
function processData(data, callback) {
// データに対する何らかの処理...
callback(data);
}
processData("Some data", (result) => {
console.log(`Processed: ${result}`);
});
オプショナル引数(optional parameter)
関数の仮引数は、必ずしも呼び出し時に指定する必要はありません。引数が省略された場合の処理も実装できます。
function logMessage(message, priority) {
if (priority === undefined) {
priority = "Normal";
}
console.log(`[${priority}] ${message}`);
}
logMessage("Something happened"); // "[Normal] Something happened"
これらの例は、JavaScriptにおける関数の引数の取り扱い方を示しています。関数の柔軟性と再利用性を高めるために、これらのパターンをうまく活用することが重要です。
まとめ
仮引数は関数内での計算や操作のための入力値を提供するための重要なメカニズムです。関数の汎用性を高め、同じ関数を異なる入力値に対して再利用することを可能にします。