JavaScript 関数のパラメータ
JavaScriptのfunction
では、パラメーター値 (引数) のチェックは実行しません。
関数のパラメーターと引数
このチュートリアルの前半で、関数がパラメータを持つことができることを学びました。
関数のパラメータは関数定義に記載されている名前です。
関数の引数とは、関数に渡される(そして受け取る)実際値のことです。
パラメータ規則
JavaScriptの関数定義は、パラメーターのデータ型を指定しません。
JavaScriptの関数は、渡された引数に対して型チェックを行いません。
JavaScriptの関数は、受け取った引数の数をチェックしません。
デフォルト パラメータ
引数が足りない(宣言された値より少ない)状態で関数が呼び出された場合、足りない値はundefined
となります。
これで問題ない場合もありますが、パラメータにデフォルト値を割り当てたほうがよい場合もあります。
パラメータのデフォルト値
ES6では、関数のパラメータにデフォルト値を持たせることができます。
例
引数yが渡されないか未定義の場合、y = 10です。
関数 rest パラメータ
rest パラメータ (...) を使用すると、関数は不特定の数の引数を配列として扱うことができます。
例
引数オブジェクト
JavaScriptの関数には、引数オブジェクトと呼ばれる組み込みオブジェクトがあります。
引数オブジェクトには、関数が呼び出されたときに使用された引数の配列が含まれています。
このようにして、単純に関数を使用して数値のリストの最大値を見つけることができます。
例
または、すべての入力値を合計する関数を作成します。
例
引数が多すぎる(宣言された数より多い)関数が呼び出された場合、これらの引数にはargumentsオブジェクトを使ってアクセスすることができます。
引数は値で渡される
関数呼び出しのパラメーターは、関数の引数です。
JavaScript 引数は値で渡されます。関数は知ることができるのは引数の場所ではなく、値だけです。
関数が引数の値を変更しても、パラメーターの元の値は変更されません。
引数の変更は、関数の外では見えません (反映されません)。
オブジェクトは参照渡し
JavaScriptでは、オブジェクト参照は値です。
このため、オブジェクトは参照渡しのように動作します。
関数がオブジェクトのプロパティを変更すると、元の値が変更されます。
オブジェクトのプロパティの変更は、関数の外部で表示 (反映) されます。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。