JavaScript関数パラメーター
JavaScriptfunction
は、パラメーター値(引数)のチェックを実行しません。
関数のパラメーターと引数
このチュートリアルの前半で、関数が パラメーターを持つことができることを学びました。
function functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
関数パラメーターは、関数定義にリストされている名前です。
関数の引数は、関数 に渡される(および関数によって受け取られる)実数値です。
パラメータルール
JavaScript関数定義は、パラメーターのデータ型を指定しません。
JavaScript関数は、渡された引数に対して型チェックを実行しません。
JavaScript関数は、受け取った引数の数をチェックしません。
デフォルトパラメータ
引数が欠落している(宣言されていない)関数が呼び出された場合、欠落している値はに設定され
undefined
ます。
これが許容できる場合もありますが、パラメータにデフォルト値を割り当てる方がよい場合もあります。
例
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
ECMAScript 2015では、関数宣言でデフォルトのパラメーター値を使用できます。
function myFunction(x, y = 2) {
// function code
}
引数オブジェクト
JavaScript関数には、argumentsオブジェクトと呼ばれる組み込みオブジェクトがあります。
引数オブジェクトには、関数が呼び出された(呼び出された)ときに使用された引数の配列が含まれています。
このように、関数を使用して、(たとえば)数値のリストで最も高い値を見つけることができます。
例
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
または、すべての入力値を合計する関数を作成します。
例
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
引数が多すぎる(宣言されている)関数が呼び出された場合、argumentsオブジェクトを使用してこれらの引数に到達できます。
引数は値で渡されます
関数呼び出しのパラメーターは、関数の引数です。
JavaScript引数は値によって渡されます:関数は値のみを認識し、引数の位置は認識しません。
関数が引数の値を変更しても、パラメーターの元の値は変更されません。
引数への変更は、関数の外部では表示(反映)されません。
オブジェクトは参照によって渡されます
JavaScriptでは、オブジェクト参照は値です。
このため、オブジェクトは参照によって渡されたように動作します。
関数がオブジェクトのプロパティを変更すると、元の値が変更されます。
オブジェクトプロパティへの変更は、関数の外部に表示(反映)されます。