JavaScriptで関数のレストパラメータ(残余引数)を定義する方法
JavaScriptのレストパラメータ(rest parameter、残余引数)を使用すると、可変個の引数をひとつの配列として受け取ることができます。この機能はES6(ECMAScript 2015)で導入され、従来のargumentsオブジェクトよりも直感的に引数を扱えるようになり、開発者の負担を大きく軽減しました。
レストパラメータは、3つのドット「...」をパラメータ名の前に付けて定義します。これにより、関数に渡された残りのすべての引数が自動的に配列としてまとめられます。
レストパラメータの基本的な使い方
以下のコード例では、addition関数がレストパラメータを使って任意の個数の数値を受け取り、その合計を返しています。
<html>
<body>
<script>
function addition(...numbers) {
var res = 0;
numbers.forEach(function (number) {
res += number;
});
return res;
}
document.write(addition(3));
document.write(addition(9, 10, 11, 12, 13));
</script>
</body>
</html>実行結果
355
コードの解説
function addition(...numbers)— 引数すべてがnumbersという配列に格納されます。addition(3)の場合 →numbers = [3]となり、結果は 3 です。addition(9, 10, 11, 12, 13)の場合 →numbers = [9, 10, 11, 12, 13]となり、結果は 55 です。
レストパラメータのメリット
- 引数の個数に制限がない:呼び出し時にいくつでも値を渡せます。
- 本物の配列として扱える:
argumentsオブジェクトと異なり、mapやfilterなどの配列メソッドを直接使えます。 - 他のパラメータとの併用が可能:ただし、レストパラメータは必ず引数リストの最後に配置する必要があります。例:
function f(a, b, ...rest)
このように、レストパラメータを活用することで、柔軟で読みやすい関数を簡潔に実装できます。
-
JavaScriptのSymbol.for()関数とは?グローバルシンボルレジストリの仕組みと使い方
Symbol.for()関数は、ランタイム全体で共有されるグローバルシンボルレジストリから、指定されたキーに対応するシンボルを検索するための関数です。 検索の結果、該当するシンボルがすでに登録されていればそれを返し、存在しない場合は新しいシンボルをレジストリに登録したうえで返します。この仕組みにより、異なるスコープやモジュール間でも同じキーを持つシンボルを共有できるようになります。 Symbol.for()とSymbol()の違い 通常のSymbol()呼び出しは、同じ引数を渡しても毎回まったく別の新しいシンボルを生成します。一方、Symbol.for(key)は同じキーを渡せば必ず同じシンボ
-
JavaScriptで文字列を検索する方法【search()メソッドの使い方を解説】
JavaScriptで文字列を検索する方法 JavaScriptで文字列の中から特定の文字列を探すには、search()メソッドを使用します。このメソッドは、引数に渡した文字列(または正規表現)が対象の文字列内で最初に一致した位置(インデックス)を返し、見つからなかった場合は -1 を返します。 以下は、JavaScriptで文字列を検索するサンプルコードです。 サンプルコード <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" />