SyntaxError: "x" ist ein reservierter Bezeichner

Der JavaScript-Ausnahmefehler "variable ist ein reservierter Bezeichner" tritt auf, wenn reservierte Schlüsselwörter als Bezeichner verwendet werden.

Meldung

SyntaxError: Unexpected reserved word (V8-based)
SyntaxError: implements is a reserved identifier (Firefox)
SyntaxError: Cannot use the reserved word 'implements' as a variable name. (Safari)

Fehlertyp

Was ist schiefgelaufen?

Reservierte Schlüsselwörter führen zu einem Fehler, wenn sie als Bezeichner verwendet werden. Diese sind sowohl im strikten Modus als auch im "sloppy" Modus reserviert:

  • enum

Die folgenden sind nur im strikten Modus reserviert:

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static

Beispiele

Strikte und nicht-strikte reservierte Schlüsselwörter

Der Bezeichner enum ist generell reserviert.

js
const enum = { RED: 0, GREEN: 1, BLUE: 2 };
// SyntaxError: enum is a reserved identifier

Im strikten Modus sind mehr Bezeichner reserviert.

js
"use strict";
const package = ["potatoes", "rice", "fries"];
// SyntaxError: package is a reserved identifier

Sie müssen diese Variablen umbenennen.

js
const colorEnum = { RED: 0, GREEN: 1, BLUE: 2 };
const list = ["potatoes", "rice", "fries"];

Ältere Browser aktualisieren

Wenn Sie einen älteren Browser verwenden, der noch nicht let oder class implementiert, sollten Sie auf eine neuere Browserversion aktualisieren, die diese neuen Sprachfeatures unterstützt.

js
"use strict";
class DocArchiver {}

// SyntaxError: class is a reserved identifier
// (throws in older browsers only, e.g. Firefox 44 and older)

Siehe auch