SyntaxError: identifier starts immediately after numeric literal

Der JavaScript-Fehler "identifier starts immediately after numeric literal" tritt auf, wenn ein Bezeichner mit einer Ziffer beginnt. Bezeichner können nur mit einem Buchstaben, Unterstrich (_) oder Dollarzeichen ($) beginnen.

Nachricht

SyntaxError: Invalid or unexpected token (V8-based)
SyntaxError: identifier starts immediately after numeric literal (Firefox)
SyntaxError: No identifiers allowed directly after numeric literal (Safari)

Fehlertyp

Was ist schiefgelaufen?

Die Namen von Variablen, sogenannte Bezeichner, unterliegen bestimmten Regeln, an die sich Ihr Code halten muss!

Ein JavaScript-Bezeichner muss mit einem Buchstaben, Unterstrich (_) oder Dollarzeichen ($) beginnen. Sie dürfen nicht mit einer Ziffer beginnen! Nur nachfolgende Zeichen können Ziffern (0-9) sein.

Beispiele

Variablennamen, die mit numerischen Literalen beginnen

Variablennamen dürfen in JavaScript nicht mit Zahlen beginnen. Das Folgende schlägt fehl:

js
const 1life = "foo";
// SyntaxError: identifier starts immediately after numeric literal

const foo = 1life;
// SyntaxError: identifier starts immediately after numeric literal

Sie müssen Ihre Variable umbenennen, um die führende Zahl zu vermeiden.

js
const life1 = "foo";
const foo = life1;

In JavaScript gibt es eine syntaktische Besonderheit beim Aufrufen von Eigenschaften oder Methoden auf Zahlen. Wenn Sie eine Methode auf einer ganzen Zahl aufrufen möchten, können Sie nicht sofort nach der Zahl einen Punkt verwenden, da der Punkt als Beginn eines Dezimalbruchs interpretiert wird, wodurch der Parser den Methoden-Namen als Bezeichner sieht, der unmittelbar nach einer Zahl vorkommt. Um dies zu vermeiden, müssen Sie entweder die Zahl in Klammern setzen oder einen doppelten Punkt verwenden, wobei der erste Punkt ein Dezimalpunkt für die Zahl ist und der zweite Punkt der Zugriff auf die Eigenschaft.

js
alert(typeof 1.toString())
// SyntaxError: identifier starts immediately after numeric literal

Korrekte Wege, um Methoden auf Zahlen aufzurufen:

js
// Wrap the number in parentheses
alert(typeof (1).toString());

// Add an extra dot for the number literal
alert(typeof 2..toString());

// Use square brackets
alert(typeof 3["toString"]());

Siehe auch