SyntaxError: missing formal parameter
Der JavaScript-Fehler "missing formal parameter" tritt auf, wenn Ihre Funktionsdeklaration gültige Parameter vermissen lässt.
Meldung
SyntaxError: missing formal parameter (Firefox) SyntaxError: Unexpected number '3'. Expected a parameter pattern or a ')' in parameter list. (Safari) SyntaxError: Unexpected string literal "x". Expected a parameter pattern or a ')' in parameter list. (Safari)
Fehlertyp
Was ist schiefgelaufen?
"Formalparameter" ist ein anspruchsvoller Ausdruck für "Funktionsparameter". Ihre Funktionsdeklaration fehlt es an gültigen Parametern. In der Deklaration einer Funktion müssen die Parameter Bezeichner sein, nicht irgendwelche Werte wie Zahlen, Strings oder Objekte. Funktionen zu deklarieren und Funktionen aufzurufen sind zwei separate Schritte. Deklarationen erfordern Bezeichner als Parameter, und nur beim Aufruf (Invocation) der Funktion geben Sie die Werte an, die die Funktion verwenden soll.
In JavaScript können Bezeichner nur alphanumerische Zeichen (oder "$" oder "_") enthalten und dürfen nicht mit einer Ziffer beginnen. Ein Bezeichner unterscheidet sich von einem String darin, dass ein String Daten darstellt, während ein Bezeichner Teil des Codes ist.
Beispiele
Geben Sie ordnungsgemäße Funktionsparameter an
Funktionsparameter müssen Bezeichner sein, wenn eine Funktion eingerichtet wird. Alle diese Funktionsdeklarationen schlagen fehl, da sie Werte für ihre Parameter bereitstellen:
function square(3) {
return number * number;
}
// SyntaxError: missing formal parameter
function greet("Howdy") {
return greeting;
}
// SyntaxError: missing formal parameter
function log({ obj: "value"}) {
console.log(arg)
}
// SyntaxError: missing formal parameter
Sie müssen Bezeichner in Funktionsdeklarationen verwenden:
function square(number) {
return number * number;
}
function greet(greeting) {
return greeting;
}
function log(arg) {
console.log(arg);
}
Sie können dann diese Funktionen mit den gewünschten Argumenten aufrufen:
square(2); // 4
greet("Howdy"); // "Howdy"
log({ obj: "value" }); // { obj: "value" }