Fehlermeldung

SyntaxError: illegal character (Firefox)
SyntaxError: Invalid or unexpected token (Chrome)

Fehlertyp

SyntaxError

Was ist falsch gelaufen?

Es gibt ein nicht valides oder nicht erwartetes Token, welches nicht an eine Position im Code passt. Man sollte einen Editor mit Syntaxhighlighting benutzten und vorsichtig nach Verwechselungen suchen, wie einem Minuszeichen ( - ) und einem Dashzeichen () oder einfachen Anführungszeichen ( " ) und anderen Anführungszeichen ().

Beispiele

Verwechseltes Zeichen

Einige Zeichen sehen sehr ähnlich aus, aber führen dazu, dass der Code nicht interpretiert werden kann. Bekannte Beispiele dafür sind Anführungszeichen, das Minus oder das Semikolon (griechisches Fragezeichen (U+37e) sieht genauso aus)

“This looks like a string”;  // SyntaxError: illegal character
                             // “ und ” sind nicht ", aber sehen so aus

42 – 13;                     // SyntaxError: illegal character                             
                             // – sind nicht -, aber sieht so aus

var foo = 'bar';             // SyntaxError: illegal character
                             // <37e> sind nicht ;, aber sieht so aus

Das funktioniert:

"This is actually a string";
42 - 13;
var foo = 'bar';

Einige Editoren und IDEs werden darauf hinweisen oder dieses anderes hervorheben, aber nicht alle. Wenn manchmal so etwas im Code passiert und man in der Lage ist das Problem zu finden, ist es oft das beste die Zeile zu löschen und sie neu einzutippen.

Vergessene Zeichen

Es passiert schnell, dass man ein Zeichen vergisst.

var colors = ['#000', #333', '#666'];
// SyntaxError: illegal character

Man muss das fehlende Anführungszeichen ergänzen '#333'.

var colors = ['#000', '#333', '#666'];

Nicht sichtbare Zeichen

Beim Kopieren und Einfügen von Code aus externen Quellen kann es nicht valide Zeichen geben. Zum Beispiel:

var foo = 'bar';​
// SyntaxError: illegal character

Wenn man den Code in einem Editor wie Vim anschaut, bemerkt man, dass ein breitenloses Leerzeichen (ZWSP) (U+200B) benutzt wird.

var foo = 'bar';​<200b>

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: schlagi123
Zuletzt aktualisiert von: schlagi123,