JavaScript 関数パラメータ

❮ 前章へ 次章へ ❯

JavaScript 関数は、パラメータの値(引数)のチェックを行いません。


関数のパラメータと引数

このチュートリアルの前段で、関数はパラメータを持つことができることを学びました:

functionName(parameter1, parameter2, parameter3) {
    code to be executed
}

関数のパラメータは、関数定義内にリストされた名前です。

関数の引数は、関数に渡される(受信する)実際のです。


パラメータの規則

JavaScript の関数定義は、パラメーターのデータ・タイプを指定しません。

JavaScript の関数は、渡された引数の型のチェックを実行しません。

JavaScript の関数は、受け取った引数の数をチェックしません。


パラメータのデフォルト値

関数を宣言よりも少ない引数で呼び出した場合、欠損値は undefined に設定されます。

時には、これでも問題ない場合もありますが、パラメータにデフォルト値を代入した方が良い場合もあります:

function myFunction(x, y) {
    if (y === undefined) {
          y = 0;
    }
}
Try it Yourself »

関数を、宣言よりも多い引数で呼び出した場合、これらの引数は arguments オブジェクト を使用して取出すことができます。


arguments オブジェクト

JavaScript 関数は、arguments オブジェクトという組込みオブジェクトを持っています。

argument オブジェクトには、関数を呼び出すときに使用した引数の配列が含まれています。

つぎのように、数値のリストの中から最大値を探すための関数にも、簡単に利用できます:

x = findMax(1, 123, 500, 115, 44, 88);

function findMax() {
    var i;
    var max = -Infinity;
    for (i = 0; i < arguments.length; i++) {
        if (arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
}
Try it Yourself »

または、入力値の合計を計算する関数作成にも使用できます:

x = sumAll(1, 123, 500, 115, 44, 88);

function sumAll() {
    var i, sum = 0;
    for (i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
}
Try it Yourself »

引数は値渡しです

関数呼び出しのパラメータは、関数の引数です。

JavaScript の引数は渡しです。関数は、引数のアドレスではなく、値を取得します。

関数が、引数の値を変更しても、パラメータの元の値は変更されません。

引数を変更しても、関数の外からは見えません(反映されません)。


オブジェクトは参照渡しです

JavaScript では、オブジェクトは値を参照します。

このため、オブジェクトは参照により渡されたように動作します:

関数が、オブジェクトのプロパティを変更すると、元の値も変更されます。

オブジェクト・プロパティの変更は、関数の外からも見えます(反映されます)。


❮ 前章へ 次章へ ❯