JavaScript関数のパラメータ

JavaScript 関数のパラメーター

JavaScript 関数は、パラメーターの値のチェックを実行しません。

関数の明示的なパラメーター (パラメーター) と暗黙的なパラメーター (引数)

前のチュートリアルでは、関数の明示的なパラメーターについて学習しました:

functionName(parameter1,parameter2,parameter3) {
// code for...
}

関数の定義時に明示的な関数パラメーターがリストされます。

暗黙的な関数パラメーターは、関数が呼び出されたときに関数に渡される実際の値です。

パラメータのルール

JavaScript 関数が定義されている場合、表示パラメータはデータ型を指定しません。

JavaScript 関数は、暗黙的なパラメーターの型チェックを実行しません。

JavaScript 関数は暗黙的なパラメーターの数を検出しません。

デフォルトパラメータ

暗黙的なパラメータを指定せずに関数が呼び出された場合、パラメータはデフォルトで未定義に設定されます

これが許容される場合もありますが、パラメータのデフォルト値を設定することをお勧めします:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p>设置参数的默认值。</p>
<p id="demo"></p>
<script>
function myFunction(x, y) {
    if (y === undefined) {
        y = 0;
    }    
    return x * y;
}
document.getElementById("demo").innerHTML = myFunction(4);
</script>
</body>
</html>

If y は既に定義されており、y || は y が true であるため y を返し、それ以外の場合は unknown が false であるため 0 を返します。

関数呼び出し時にパラメータを設定しすぎると、対応するパラメータ名が見つからないため、パラメータは参照されません。 引数オブジェクトを使用してのみ呼び出すことができます。

Arguments オブジェクト

JavaScript 関数には、組み込みのオブジェクト引数オブジェクトがあります。

argument オブジェクトには、関数呼び出しのパラメータ配列が含まれます。

この方法で、最後のパラメータの値を簡単に見つけることができます:

ソースコード:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p>查找最大的数。</p>
<p id="demo"></p>
<script>
function findMax() {
    var i, max = 0;
    for(i = 0; i < arguments.length; i++) {
        if (arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
} 
document.getElementById("demo").innerHTML = findMax(4, 5, 6);
</script>
</body>
</html>

または、すべての値の合計をカウントする関数を作成します:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p>计算所有参数之和:</p>
<p id="demo"></p>
<script>
function sumAll() {
    var i, sum = 0;
    for(i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
} 
document.getElementById("demo").innerHTML =
    sumAll(1, 123, 500, 115, 44, 88);
</script>
</body>
</html>

パラメータを値で渡します

関数内で呼び出されるパラメータは、関数の暗黙的なパラメータです。

JavaScript の暗黙的なパラメーターは値によって渡されます。関数は値を取得するだけです。

関数がパラメーターの値を変更する場合、明示的なパラメーター (関数の外部で定義される) の初期値は変更されません。

暗黙的なパラメーターの変更は関数の外部には表示されません。

オブジェクトを介してパラメーターを渡す

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

そのため、関数内でオブジェクトのプロパティを変更すると、その初期値も変更されます。

オブジェクトのプロパティの変更は、関数 (グローバル変数) の外部で動作する可能性があります。

オブジェクトのプロパティの変更は関数の外部で確認できます。


学び続ける
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p>设置函数参数默认值。</p> <p id="demo"></p> <script> function myFunction(x, y) { y = y || 0; return x * y; } document.getElementById("demo").innerHTML = myFunction(4); </script> </body> </html>