Spec-Zone.ru › JavaScript

SyntaxError: строковый литерал содержит неэкранированный перевод строки

Ошибка JavaScript "string literal contains an unescaped line break" возникает, когда где-то есть незавершенный строковый литерал. Строковые литералы должны быть заключены в одинарные (') или двойные (") кавычки и не могут быть разделены на несколько строк.

Сообщение

SyntaxError: Invalid or unexpected token (V8-based)
SyntaxError: '' string literal contains an unescaped line break (Firefox)
SyntaxError: Unexpected EOF (Safari)

Тип ошибки

SyntaxError

Что пошло не так?

Где-то есть незавершенный строковый литерал. Строковые литералы должны быть заключены в одинарные (') или двойные (") кавычки. JavaScript не делает различий между строками в одинарных и двойных кавычках. Экранирующие последовательности работают в строках, созданных как в одинарных, так и в двойных кавычках. Чтобы исправить эту ошибку, проверьте:

  • у вас есть открывающие и закрывающие кавычки (одинарные или двойные) для вашего строкового литерала,
  • вы правильно экранировали ваш строковый литерал,
  • ваш строковый литерал не разделен на несколько строк.

Примеры

Несколько строк

Вы не можете разделять строку на несколько строк вот так в JavaScript:

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

Вместо этого используйте оператор +, обратную косую черту или шаблонные литералы. Вариант с оператором + выглядит следующим образом:

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

Или вы можете использовать символ обратной косой черты ("\") в конце каждой строки, чтобы указать, что строка продолжится на следующей строке. Убедитесь, что после обратной косой черты нет пробела или любого другого символа (кроме перевода строки) или отступа; в противном случае это не сработает. Эта форма выглядит так:

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

Другая возможность — использовать шаблонные литералы.

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

Смотрите также

  • строковый литерал
  • Шаблонные литералы

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/String_literal_EOL

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API