Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
SyntaxError: string literal enthält einen nicht-escaped Zeilenumbruch
Der JavaScript-Fehler "string literal contains an unescaped line break" tritt auf, wenn irgendwo ein nicht abgeschlossenesString-Literal vorhanden ist. String-Literale müssen von einfachen (') oder doppelten (") Anführungszeichen umschlossen sein und dürfen nicht über mehrere Zeilen hinweg aufgeteilt werden.
In diesem Artikel
Nachricht
SyntaxError: Invalid or unexpected token (V8-based)SyntaxError: '' string literal contains an unescaped line break (Firefox)SyntaxError: Unexpected EOF (Safari)
Fehlertyp
SyntaxErrorWas ist schiefgelaufen?
Es gibt irgendwo ein nicht abgeschlossenesString-Literal. String-Literale müssen von einfachen (') oder doppelten (") Anführungszeichen umschlossen werden. JavaScript macht keinen Unterschied zwischen einfach- und doppelt-quotierten Strings.Escape-Sequenzen funktionieren in Strings, die entweder mit einfachen oder doppelten Anführungszeichen erstellt wurden. Um diesen Fehler zu beheben, überprüfen Sie:
- ob Sie Anfangs- und Endanführungszeichen (einfach oder doppelt) für Ihr String-Literal haben,
- ob Sie Ihr String-Literal korrekt escaping,
- ob Ihr String-Literal nicht über mehrere Zeilen hinweg aufgeteilt ist.
Beispiele
>Mehrere Zeilen
Sie können einen String in JavaScript nicht über mehrere Zeilen hinweg wie folgt aufteilen:
const longString = "This is a very long string which needs to wrap across multiple lines because otherwise my code is unreadable.";// SyntaxError: unterminated string literalVerwenden Sie stattdessen den+ Operator, einen Backslash oderTemplate-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 können das Backslash-Zeichen ("\") am Ende jeder Zeile verwenden, um anzuzeigen, dass der String in der nächsten Zeile fortgesetzt wird. Stellen Sie sicher, dass nach dem Backslash kein Leerzeichen oder ein anderes Zeichen (außer einem Zeilenumbruch) oder als Einzug vorhanden ist; andernfalls funktioniert es nicht. Diese Form sieht folgendermaßen 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 vonTemplate-Literalen.
const longString = `This is a very long string which needs to wrap across multiple lines because otherwise my code is unreadable.`;