Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
SyntaxError: identifier starts immediately after numeric literal
Der JavaScript-Ausnahmefehler "identifier starts immediately after numeric literal" tritt auf, wenn ein Bezeichner mit einer Ziffer beginnt. Bezeichner dürfen nur mit einem Buchstaben, Unterstrich (_) oder Dollarzeichen ($) beginnen.
In diesem Artikel
Meldung
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
SyntaxErrorWas ging schief?
Die Namen von Variablen, genanntBezeichner, müssen bestimmten Regeln entsprechen, die Ihr Code einhalten muss!
Ein JavaScript-Bezeichner muss mit einem Buchstaben, Unterstrich (_) oder Dollarzeichen ($) beginnen. Sie dürfen nicht mit einer Ziffer anfangen! Nur folgende Zeichen können Ziffern (0-9) sein.
Beispiele
>Variablennamen, die mit numerischen Literalen beginnen
Variablennamen dürfen in JavaScript nicht mit Zahlen beginnen. Folgendes schlägt fehl:
const 1life = "foo";// SyntaxError: identifier starts immediately after numeric literalconst foo = 1life;// SyntaxError: identifier starts immediately after numeric literalSie müssen Ihre Variable umbenennen, um die führende Zahl zu vermeiden.
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 unmittelbar ein Punkt nach der Zahl verwenden, da der Punkt als Beginn eines Dezimalbruchs interpretiert wird, wodurch der Parser den Namen der Methode als Bezeichner unmittelbar nach einem Zahl-Literal erkennt. Um dies zu vermeiden, müssen Sie entweder die Zahl in Klammern setzen oder einen Doppelpunkten verwenden, wobei der erste Punkt ein Dezimalpunkt für das Zahl-Literal ist und der zweite Punkt der Eigenschafts-Zugriff ist.
alert(typeof 1.toString())// SyntaxError: identifier starts immediately after numeric literalKorrekte Möglichkeiten, um Methoden auf Zahlen aufzurufen:
// Wrap the number in parenthesesalert(typeof (1).toString());// Add an extra dot for the number literalalert(typeof 2..toString());// Use square bracketsalert(typeof 3["toString"]());