--- title: 'SyntaxError: unterminated string literal(незавершённый строковый литерал)' slug: Web/JavaScript/Reference/Errors/Unterminated_string_literal translation_of: Web/JavaScript/Reference/Errors/Unterminated_string_literal ---
SyntaxError: незадействованная строковая константа (Edge) SyntaxError: незадействованный строковый литерал (Firefox)
{{jsxref("SyntaxError")}}
Где-то есть unterminated {{jsxref("String")}}. Строковые литералы должны быть заключены в одинарные (')
или двойные (")
кавычки. JavaScript не делает различий между строками в одинарных и двойных кавычках. Escape-последовательности работают в строках, созданных с одинарными или двойными кавычками. Чтобы исправить эту ошибку, проверьте:
Вы не можете разделить строку на несколько строк, как в JavaScript:
var longString = 'Это очень длинная строка, которая нуждается перенос через несколько строк, потому что в противном случае мой код нечитаем."; // SyntaxError: незавершённый строковый литерал
Вместо этого используйте оператор+, обратную косую черту или литералы шаблона. Вариант оператора + выглядит следующим образом:
var longString = ' Это очень длинная строка, которая нуждается в ' + 'чтобы обернуть через несколько строк, потому что' + -иначе мой код будет нечитабелен.";
Или можно использовать символ обратной косой черты ("\") в конце каждой строки, чтобы указать, что строка будет продолжаться в следующей строке. Убедитесь, что после обратной косой черты нет пробелов или других символов (кроме разрыва строки) или отступа; в противном случае это не сработает. Эта форма выглядит следующим образом:
var longString = 'Это очень длинная строка, которая нуждается \ переносе через несколько строк, потому что \ в противном случае мой код нечитаем.";
Ещё одна возможность-использовать шаблонные литералы, поддерживаемые в средах ECMAScript 2015:
var longString = `Это очень длинная строка, которая нуждается в переносе через несколько строк, потому что в противном случае мой код нечитаем.`;