SyntaxError: string literal contains an unescaped line break

Ошибка JavaScript «строковый литерал содержит неэкранированный перенос строки» возникает, когда где-то встречается незавершённый строковый литерал. Строковые литералы должны быть заключены в одинарные (') или двойные (")) кавычки и не могут разбиваться на несколько строк.

Сообщение

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

Тип ошибки

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

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

Чтобы исправить эту ошибку, проверьте:

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

Примеры

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

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

js
var longString = "Это очень длинная строка, которую
                  необходимо разбивать на несколько строк,
                  потому что иначе её трудно читать.";
// SyntaxError: unterminated string literal

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

Вариант с оператором + выглядит следующим образом:

js
const longString =
  "Это очень длинная строка, которую " +
  "необходимо разбивать на несколько строк, " +
  "потому что иначе её трудно читать.";

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

js
const longString =
  "Это очень длинная строка, которую \
необходимо разбивать на несколько строк, \
потому что иначе её трудно читать.";

Ещё одна возможность — использовать шаблонные строки:

js
const longString = `Это очень длинная строка, которую
необходимо разбивать на несколько строк,
потому что иначе её трудно читать.`;

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