SyntaxError: string literal enthält einen nicht-escaped Zeilenumbruch
Der JavaScript-Fehler "string literal enthält einen nicht-escaped Zeilenumbruch" tritt auf, wenn irgendwo ein nicht abgeschlossenes
String-Literal vorhanden ist. String-Literale müssen durch einfache
('
) oder doppelte ("
) Anführungszeichen eingeschlossen werden und können nicht über mehrere Zeilen hinweg verteilt werden.
Meldung
SyntaxError: Invalid or unexpected token (V8-based) SyntaxError: '' string literal contains an unescaped line break (Firefox) SyntaxError: Unexpected EOF (Safari)
Fehlerart
Was ist schiefgelaufen?
Es gibt irgendwo ein nicht abgeschlossenes
String-Literal. String-Literale müssen durch einfache ('
) oder doppelte ("
) Anführungszeichen eingeschlossen sein. JavaScript macht keinen Unterschied zwischen einfach- und doppelt-gequoteten Zeichenfolgen.
Escape-Sequenzen funktionieren in Zeichenfolgen, die entweder mit einfachen oder doppelten Anführungszeichen erstellt wurden.
Um diesen Fehler zu beheben, prüfen Sie, ob:
- Sie sowohl ein öffnendes als auch ein schließendes Anführungszeichen (einfach oder doppelt) für Ihr String-Literal haben,
- Sie Ihr String-Literal korrekt escaped haben,
- Ihr String-Literal nicht über mehrere Zeilen verteilt ist.
Beispiele
Mehrere Zeilen
Sie können einen String in JavaScript nicht wie folgt über mehrere Zeilen verteilen:
const 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 verwenden Sie den + Operator,
einen Backslash oder Template-Literale.
Die Variante mit dem +
Operator sieht so aus:
const longString =
"This is a very long string which needs " +
"to wrap across multiple lines because " +
"otherwise my code is unreadable.";
Oder Sie verwenden das Backslash-Zeichen ("\") am Ende jeder Zeile, um anzuzeigen, dass der String in der nächsten Zeile fortgesetzt wird. Stellen Sie sicher, dass sich kein Leerzeichen oder ein anderes Zeichen nach dem Backslash befindet (außer für einen Zeilenumbruch) oder als Einrückung; andernfalls funktioniert es nicht. Diese Form sieht so aus:
const longString =
"This is a very long string which needs \
to wrap across multiple lines because \
otherwise my code is unreadable.";
Eine weitere Möglichkeit ist die Verwendung von Template-Literalen.
const longString = `This is a very long string which needs
to wrap across multiple lines because
otherwise my code is unreadable.`;