JavaScript Funktionsparameter


JavaScript-Funktionen führen keine Überprüfung der Werte von Parametern durch.


Explizite Funktionsparameter und implizite Argumente

In früheren Tutorials haben wir bereits etwas über explizite Parameter von Funktionen gelernt:

functionName(parameter1, parameter2, parameter3) { //Der auszuführende Code... }

Explizite Funktionsparameter werden aufgelistet, wenn die Funktion definiert wird.

Implizite Funktionsargumente sind die tatsächlichen Werte, die beim Aufruf an die Funktion übergeben werden.


Parameterregeln

JavaScript-Funktionen geben bei der Definition expliziter Parameter keine Datentypen an.

JavaScript-Funktionen führen keine Typprüfung für implizite Argumente durch.

JavaScript-Funktionen prüfen nicht die Anzahl der impliziten Argumente.


Standardparameter

In ES5: Wenn die Funktion aufgerufen wird, ohne implizite Argumente bereitzustellen, wird der Parameter standardmäßig auf:undefined gesetzt.

Manchmal ist das akzeptabel, aber es wird empfohlen, einen Standardwert für den Parameter festzulegen:

Beispiel (ES5)

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

Selbst ausprobieren »

Oder eine noch einfachere Möglichkeit:

Beispiel (ES5)

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

Selbst ausprobieren »

Note Wenn y bereits definiert ist,y || 0return y, weil y wahr ist; andernfalls return 0, weil undefined falsch ist.

Wenn beim Aufruf einer Funktion zu viele Argumente übergeben werden, können die zusätzlichen Argumente nicht referenziert werden, da kein entsprechender Parametername gefunden werden kann. Auf sie kann nur über das arguments-Objekt zugegriffen werden.

ES6-Funktionen können Standardparameter haben

ES6 unterstützt Funktionen mit Standardparametern, was der Operation des Prüfens auf undefined und || entspricht:

Beispiel (ES6)

function myFunction(x, y = 10) { // y ist 10, wenn nicht übergeben oder undefined return x + y; } myFunction(0, 2) //Ausgabe 2 myFunction(5); //Ausgabe 15, der Standardwert des Parameters y

Selbst ausprobieren »

Das arguments-Objekt

JavaScript-Funktionen haben ein eingebautes Objekt, das arguments-Objekt.

Das arguments-Objekt enthält das Array der Argumente für einen Funktionsaufruf.

Auf diese Weise können Sie leicht den Wert des größten Arguments finden:

Beispiel

x = findMax(1, 123, 500, 115, 44, 88); function findMax() { var i, max = arguments[0]; if(arguments.length < 2) return max; for (i = 0; i < arguments.length; i++) { if (arguments[i] > max) { max = arguments[i]; } } return max; }

Selbst ausprobieren »

Oder erstellen Sie eine Funktion, um alle Werte zu summieren:

Beispiel

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

Selbst ausprobieren »


Parameterübergabe als Wert

Die Argumente, die beim Aufruf einer Funktion übergeben werden, sind die impliziten Argumente der Funktion.

JavaScript implizite Argumente werden als Wert übergeben: Die Funktion erhält nur den Wert.

Wenn die Funktion den Wert eines Parameters ändert, ändert sie nicht den ursprünglichen Wert des expliziten Parameters (der außerhalb der Funktion definiert ist).

Änderungen an impliziten Argumenten sind außerhalb der Funktion nicht sichtbar.


Parameterübergabe per Objekt

In JavaScript können Sie auf den Wert eines Objekts verweisen.

Wenn wir also eine Eigenschaft eines Objekts innerhalb einer Funktion ändern, ändert dies seinen ursprünglichen Wert.

Das Ändern von Objekteigenschaften kann sich auf das Äußere der Funktion auswirken (globale Variablen).

Änderungen an Objekteigenschaften sind außerhalb der Funktion sichtbar.

Andere Erweiterungen