SyntaxError: Neudeklaration des formalen Parameters "x"

Der JavaScript-Ausnahmefehler "Neudeklaration des formalen Parameters" tritt auf, wenn ein Funktionsparameter denselben Variablennamen aufweist und dann im Funktionskörper erneut mit einer let-Zuweisung deklariert wird.

Nachricht

SyntaxError: Identifier "x" has already been declared (V8-based)
SyntaxError: redeclaration of formal parameter "x" (Firefox)
SyntaxError: Cannot declare a let variable twice: 'x'. (Safari)

Fehlertyp

Was ist schiefgelaufen?

Derselbe Variablenname tritt als Funktionsparameter auf und wird dann im Funktionskörper erneut mit einer let-Zuweisung deklariert. Die Neudeklaration derselben Variablen innerhalb desselben Funktions- oder Blockbereichs mit let ist in JavaScript nicht erlaubt.

Beispiele

Neu deklariertes Argument

In diesem Fall deklariert die Variable "arg" das Argument neu.

js
function f(arg) {
  let arg = "foo";
}

// SyntaxError: redeclaration of formal parameter "arg"

Wenn Sie den Wert von "arg" im Funktionskörper ändern möchten, können Sie das tun, aber Sie müssen dieselbe Variable nicht erneut deklarieren. Mit anderen Worten: Sie können das let-Schlüsselwort weglassen. Wenn Sie eine neue Variable erstellen möchten, müssen Sie sie umbenennen, da ein Konflikt mit dem Funktionsparameter bereits besteht.

js
function f(arg) {
  arg = "foo";
}

function g(arg) {
  let bar = "foo";
}

Siehe auch