SyntaxError: illegales Zeichen
Der JavaScript-Fehler "illegales Zeichen" tritt auf, wenn der Lexer ein Zeichen liest, das nicht Teil eines Zeichenfolgenliterals ist, und das Zeichen kein gültiges Token in der Sprache bilden kann.
Meldung
SyntaxError: Invalid or unexpected token (V8-based) SyntaxError: illegal character U+201C (Firefox) SyntaxError: Invalid character '\u201c' (Safari)
Fehlertyp
Was ist schiefgelaufen?
Es gibt ein ungültiges Zeichen, das der Interpreter nicht versteht. Sie sollten es entweder in ein Zeichenfolgenliteral setzen oder es durch ein anderes Zeichen ersetzen. Verwenden Sie einen Editor mit Syntaxhervorhebung und überprüfen Sie Ihren Code sorgfältig auf Unterschiede wie ein Minuszeichen (-
) gegenüber einem Gedankenstrich (–
) oder einfache Anführungszeichen ("
) gegenüber nicht standardmäßigen Anführungszeichen (“
).
Beispiele
Nicht passende Zeichen
Einige Zeichen sehen ähnlich aus, führen jedoch dazu, dass der Parser Ihr Code nicht interpretieren kann. Bekannte Beispiele dafür sind Anführungszeichen, der Bindestrich oder das Semikolon (das griechische Fragezeichen (U+37e) sieht gleich aus).
“This looks like a string”; // SyntaxError: illegal character
// “ and ” are not " but look like it
42 – 13; // SyntaxError: illegal character
// – (en-dash) is not - but looks like it
const foo = "bar"; // SyntaxError: illegal character
// <37e> is not ; but looks like it
Dies sollte funktionieren:
"This is actually a string";
42 - 13;
const foo = "bar";
Einige Editoren und IDEs benachrichtigen Sie oder verwenden zumindest eine leicht unterschiedliche Hervorhebung dafür, aber nicht alle. Wenn so etwas in Ihrem Code passiert und Sie die Quelle des Problems nicht finden können, ist es oft am besten, einfach die problematische Zeile zu löschen und neu zu schreiben.
Vergessene Zeichen
Es ist leicht, hier oder da ein Zeichen zu vergessen.
const operators = ["+", "-", ×", "÷"];
// SyntaxError: illegal character U+00D7
Fügen Sie das fehlende Anführungszeichen für "×"
hinzu.
const operators = ["+", "-", "×", "÷"];
Versteckte Zeichen
Wenn Sie Code aus externen Quellen kopieren und einfügen, können ungültige Zeichen vorhanden sein. Seien Sie wachsam!
const foo = "bar";
// SyntaxError: illegal character
Beim Inspizieren dieses Codes in einem Editor wie VIM können Sie sehen, dass tatsächlich ein Nullbreitenraum (ZWSP) (U+200B)-Zeichen vorhanden ist.
const foo = "bar";<200b>