JavaScriptの関数の引数

JavaScript 関数パラメータの値には何もチェックしません。

関数のパラメータ

このチュートリアルの少し前に、関数がどのようなものか学びました:パラメータ

functionName(parameter1, parameter2, parameter3) {
    実行するコード
}

関数のパラメータ(parameter)これは関数の定義にリストされている名前

関数のパラメータ(argument)これは関数に渡されるまたは関数が受け取る実際の

パラメータのルール

JavaScript ファンクションの定義はパラメータ(parameter)にデータ型を指定しません。

JavaScript ファンクションは渡されたパラメータ(argument)のタイプをチェックしません。

JavaScript ファンクションは受け取ったパラメータ(argument)の数をチェックしません。

パラメータのデフォルト

パラメータを呼び出すときにパラメータを省略しました(宣言より少ない場合)、欠けている値は以下のように設定されます:undefined

時には受け入れられるかもしれませんが、時にはパラメータにデフォルト値を指定する方が良いでしょう:

インスタンス

function myFunction(x, y) {
    if (y === undefined) {
          y = 0;
    } 
}

自分で試してみてください

もし関数呼び出しのパラメータが多すぎます(宣言より多くの場合)、以下を使用することができます arguments オブジェクトこれらのパラメータを取得するために使用されます。

arguments オブジェクト

JavaScript ファンクションには、arguments オブジェクトという組み込みオブジェクトがあります。

arguments オブジェクトは関数呼び出し時に使用されるパラメータの配列を含んでいます。

このように、関数を使って(例えば)数字リストの最大値を簡単に見つけることができます:

インスタンス

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;
}

自分で試してみてください

または、すべての入力値を合計する関数を作成します:

インスタンス

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;
}

自分で試してみてください

パラメータは値で渡されます

関数呼び出しのパラメータ(parameter)は関数のパラメータ(argument)です。

JavaScript パラメータは以下のように渡されます:以下のように渡します:関数は値のみを知り、パラメータの位置は知りません。

関数がパラメータの値を変更すると、パラメータの元の値は変更されません。

パラメータの変更は関数の外では見えません。

オブジェクトは参照を通じて渡されます。

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

そのため、オブジェクトの動作は、以下のように見えます。参照以下のように渡します:

関数がオブジェクトの属性を変更すると、元の値も変更されます。

オブジェクトの属性の変更は関数の外でも見えます。