JavaScriptのレストパラメータ(Rest Parameters)とは?基本と使い方をわかりやすく解説
ES6(ECMAScript 2015)で導入されたレストパラメータ(rest parameter)は、開発者の作業を大幅に楽にしてくれる便利な機能です。可変長の引数を扱う際に、従来のargumentsオブジェクトよりも直感的で柔軟な記述が可能になります。
レストパラメータの基本
レストパラメータは、パラメータ名の前に3つのドット(...)を付けて表します。これにより、関数に渡された不特定多数の引数を、ひとつの配列(Arrayインスタンス)として受け取ることができます。
構文は以下のようになります。
function 関数名(...引数名) {
// 引数名は配列として扱える
}
サンプルコード
実際のコードを見てみましょう。次の例では、渡された数値をすべて合計する関数をレストパラメータを使って定義しています。
<html>
<body>
<script>
function addition(...numbers) {
var res = 0;
numbers.forEach(function (number) {
res += number;
});
return res;
}
document.write(addition(3));
document.write(addition(5,6,7,8,9));
</script>
</body>
</html>
実行結果
3 35
addition(3)では引数が1つだけなので「3」が返され、addition(5,6,7,8,9)では5つの引数すべてが配列numbersに格納され、合計値「35」が返されます。
argumentsオブジェクトとの違い
従来のargumentsオブジェクトは「配列風のオブジェクト(array-like object)」であり、forEachやmapなどの配列メソッドを直接使うことができませんでした。一方、レストパラメータは本物のArrayインスタンスであるため、配列の便利なメソッドをそのまま利用できるのが大きなメリットです。
まとめ
- レストパラメータはES6で導入された機能で、「...」を使って表す
- 不特定多数の引数を配列として受け取れる
- 本物の配列なので、forEachなどの配列メソッドがそのまま使える
- argumentsオブジェクトより直感的で扱いやすい
-
JavaScriptの関数式(Function Expression)とは?特徴と使い方を解説
JavaScriptにおける関数式(Function Expression)とは、関数を変数に代入して定義する方法のことです。代入された関数は、その変数名を使って後から呼び出すことができます。 関数式の主な特徴 関数を変数に格納し、変数名を指定して呼び出せる 通常の関数宣言(function declaration)と異なり、ホイスティング(巻き上げ)が行われないため、定義よりも前に呼び出すことはできない 多くの場合、名前を持たない「無名関数(匿名関数)」として定義される コールバック関数や即時実行関数(IIFE)など、さまざまな場面で活用できる この「ホイスティングされない」という点が重
-
JavaScriptのクロージャとは?仕組みと実装例をわかりやすく解説
クロージャとはJavaScriptにおけるクロージャ(Closure)とは、外側の関数の実行が完了して値を返した後であっても、内側の関数から外側の関数のスコープ(変数)にアクセスできる仕組みのことです。言い換えれば、内側の関数は、外側の関数の変数に対して常にアクセスできるということです。この性質を活用することで、データを外部から直接操作されないように隠蔽したり、関数の呼び出し間で状態を保持する処理を実現したりすることが可能になります。クロージャのサンプルコード以下は、JavaScriptでクロージャを使用した具体的なコード例です。ボタンをクリックすると、クロージャによって保持された値を使って2