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).

js
“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:

js
"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.

js
const operators = ["+", "-", ×", "÷"];
// SyntaxError: illegal character U+00D7

Fügen Sie das fehlende Anführungszeichen für "×" hinzu.

js
const operators = ["+", "-", "×", "÷"];

Versteckte Zeichen

Wenn Sie Code aus externen Quellen kopieren und einfügen, können ungültige Zeichen vorhanden sein. Seien Sie wachsam!

js
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.

js
const foo = "bar";<200b>

Siehe auch