Meldung

SyntaxError: redeclaration of formal parameter "x" (Firefox)
SyntaxError: Identifier "x" has already been declared (Chrome)

Fehlertyp

SyntaxError

Was ist falsch gelaufen?

Der selbe Variablenname wird für einen Funktionsparameter benutzt und dann in einer let Zuweisung im Funktionskörper wieder neu deklariert. Das Neudeklarieren der gleichen Variablen in der selben Funktion oder im selben Block mit let ist in JavaScript nicht erlaubt.

Beispiele

In diesem Fall wird der Parameter "arg" neu deklariert.

function f(arg) { 
  let arg = 'foo'; 
}

// SyntaxError: redeclaration of formal parameter "arg"

Wenn der Wert von "arg" im Funktionskörper geändert werden soll, kann das getan werden, aber ohne die selbe Variable neu zu deklarieren. Oder anders gesagt, man kann das let Schlüsselwort weg lassen. Wenn eine neue Variable erstellt werden soll, muss sie umbenannt werden, damit es keine Konflikte mit dem Funktionsparameter mehr gibt.

function f(arg) {
  arg = 'foo';
}

function f(arg) { 
  let bar = 'foo'; 
}

Kompatibilitätshinweise

  • Vor Firefox 49 (Firefox 49 / Thunderbird 49 / SeaMonkey 2.46), wurde ein TypeError erzeugt (Bug 1275240).

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
 Mitwirkende an dieser Seite: schlagi123
 Zuletzt aktualisiert von: schlagi123,