Fehlermeldung

SyntaxError: unterminated string literal

Fehlertyp

SyntaxError

Was ist falsch gelaufen?

Es gibt irgendwo einen nicht beendeten String. Stringliterale müssen mit einfachen (') oder doppelten (") Anführungszeichen umschlossen sein. JavaScript unterscheidet nicht zwischen Strings, die mit einfachen oder doppelten Anführungszeichen umschlossen sind. Maskierte Sequenzen funktionieren in Strings mit einfachen und doppelten Anführungszeichen. Um den Fehler zu beheben, sollte folgendes überprüft werden:

  • Es gibt öffnende und schließende Anführungszeichen (einfache oder doppelte) für alle Stringliterale,
  • Stringliterale sind richtig maskiert,
  • Stringliterale funktionieren richtig über mehrere Zeilen, wenn es solche gibt.

Beispiele

MehrereZeilen

Man kann Strings nicht über mehrere Zeilen in JavaScript schreiben:

var longString = 'This is a very long string which needs 
                  to wrap across multiple lines because 
                  otherwise my code is unreadable.';
// SyntaxError: unterminated string literal

Stattdessen muss ein + Operator, ein Backslask oder ein Templateliteral eingesetzt werden. Die + Operator Variante sieht wie folgt aus:

var longString = 'This is a very long string which needs ' +
                 'to wrap across multiple lines because ' +
                 'otherwise my code is unreadable.';

Oder man benutzt ein Backslash Zeichen ("\") am ende jeder Zeile, um anzudeuten, dass der String in der nächsten Zeile weiter geht. Man muss sicherstellen, dass keine Leerzeichen oder andere Zeichen nach dem Backslash stehen (ausgenommen der Zeilenumbruch) oder als Einrückung, ansonsten wird es nicht funktionieren. Diese Form sieht wie folgt aus:

var longString = 'This is a very long string which needs \
to wrap across multiple lines because \
otherwise my code is unreadable.';

Eine andere Möglichkeit ist der Einsatz von Templateliteralen, welche in ECMAScript 2015 Umgebungen unterstützt werden:

var longString = `This is a very long string which needs 
                  to wrap across multiple lines because
                  otherwise my code is unreadable.`;

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

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