JavaScript -Funktionsparameter
Ein JavaScript function
führt keine Überprüfung von Parameterwerten (Argumenten) durch.
Funktionsparameter und Argumente
Weiter oben in diesem Tutorial haben Sie gelernt, dass Funktionen Parameter haben können :
function functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
Funktionsparameter sind die in der Funktionsdefinition aufgeführten Namen .
Funktionsargumente sind die realen Werte , die an die Funktion übergeben (und von ihr empfangen) werden.
Parameterregeln
JavaScript-Funktionsdefinitionen geben keine Datentypen für Parameter an.
JavaScript-Funktionen führen keine Typprüfung für die übergebenen Argumente durch.
JavaScript-Funktionen überprüfen nicht die Anzahl der empfangenen Argumente.
Standardparameter
Wenn eine Funktion mit fehlenden Argumenten (weniger als deklariert) aufgerufen wird, werden die fehlenden Werte auf gesetzt
undefined
.
Manchmal ist dies akzeptabel, aber manchmal ist es besser, dem Parameter einen Standardwert zuzuweisen:
Beispiel
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
ECMAScript 2015 erlaubt Standardparameterwerte in der Funktionsdeklaration:
function myFunction(x, y = 2) {
// function code
}
Das Arguments-Objekt
JavaScript-Funktionen haben ein eingebautes Objekt namens Arguments-Objekt.
Das Argumentobjekt enthält ein Array der Argumente, die verwendet wurden, als die Funktion aufgerufen (aufgerufen) wurde.
Auf diese Weise können Sie einfach eine Funktion verwenden, um (zum Beispiel) den höchsten Wert in einer Liste von Zahlen zu finden:
Beispiel
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;
}
Oder erstellen Sie eine Funktion, um alle Eingabewerte zu summieren:
Beispiel
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;
}
Wenn eine Funktion mit zu vielen Argumenten (mehr als deklariert) aufgerufen wird, können diese Argumente mit dem arguments-Objekt erreicht werden .
Argumente werden als Wert übergeben
Die Parameter in einem Funktionsaufruf sind die Argumente der Funktion.
JavaScript-Argumente werden als Wert übergeben : Die Funktion erfährt nur die Werte, nicht die Position des Arguments.
Wenn eine Funktion den Wert eines Arguments ändert, ändert sie nicht den ursprünglichen Wert des Parameters.
Änderungen an Argumenten sind außerhalb der Funktion nicht sichtbar (reflektiert).
Objekte werden per Referenz übergeben
In JavaScript sind Objektreferenzen Werte.
Aus diesem Grund verhalten sich Objekte so, als würden sie per Referenz übergeben:
Wenn eine Funktion eine Objekteigenschaft ändert, ändert sie den ursprünglichen Wert.
Änderungen an Objekteigenschaften sind außerhalb der Funktion sichtbar (reflektiert).