Skip to content

Commit

Permalink
[ru] update `Web/JavaScript/Reference/Errors/Unterminated_string_lite…
Browse files Browse the repository at this point in the history
…ral` translation (#17375)

[ru] update 'Web/JavaScript/Reference/Errors/Unterminated_string_literal' translation
  • Loading branch information
leon-win authored Dec 9, 2023
1 parent f339445 commit 4b062cf
Showing 1 changed file with 35 additions and 25 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
---
title: "SyntaxError: unterminated string literal(незавершённый строковый литерал)"
title: "SyntaxError: unterminated string literal"
slug: Web/JavaScript/Reference/Errors/Unterminated_string_literal
l10n:
sourceCommit: d71b141d2d18b96639547856714df19cefacfebf
---

{{jsSidebar("Errors")}}

Ошибка JavaScript «незавершённый строковый литерал» возникает, когда где-то встречается незавершённый [строковый литерал](/ru/docs/Web/JavaScript/Guide/Grammar_and_types#строковый_литерал). Строковые литералы должны быть заключены в одинарные (`'`) или двойные (`"`)) кавычки.

## Сообщение

```
SyntaxError: незадействованная строковая константа (Edge)
SyntaxError: незадействованный строковый литерал (Firefox)
```plain
SyntaxError: Unterminated string constant (Edge)
SyntaxError: unterminated string literal (Firefox)
```

## Тип ошибки
Expand All @@ -18,9 +22,11 @@ SyntaxError: незадействованный строковый литера

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

Где-то есть unterminated {{jsxref("String")}}. Строковые литералы должны быть заключены в одинарные `(')` или двойные `(")` кавычки. JavaScript не делает различий между строками в одинарных и двойных кавычках. Escape-последовательности работают в строках, созданных с одинарными или двойными кавычками. Чтобы исправить эту ошибку, проверьте:
Где-то есть незавершённый [строковый литерал](/ru/docs/Web/JavaScript/Guide/Grammar_and_types#строковый_литерал). Строковые литералы должны быть заключены в одинарные (`'`) или двойные (`"`) кавычки. JavaScript не делает различий между строками в одинарных и двойных кавычках. [Экранирование символов](/ru/docs/Web/JavaScript/Reference/Lexical_grammar) работают в строках, созданных и с одинарными и с двойными кавычками.

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

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

Expand All @@ -30,38 +36,42 @@ SyntaxError: незадействованный строковый литера

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

```js example-bad
var longString = 'Это очень длинная строка, которая нуждается
перенос через несколько строк, потому что
в противном случае мой код нечитаем.";
// SyntaxError: незавершённый строковый литерал
```js-nolint example-bad
var longString = "Это очень длинная строка, которую
необходимо разбивать на несколько строк,
потому что иначе её трудно читать.";
// SyntaxError: unterminated string literal
```

Вместо этого используйте оператор+, обратную косую черту или литералы шаблона. Вариант оператора + выглядит следующим образом:
Вместо этого используйте [оператор +](/ru/docs/Web/JavaScript/Reference/Operators/Addition), обратную косую черту или [шаблонные строки](/ru/docs/Web/JavaScript/Reference/Template_literals).

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

```js example-good
var longString = ' Это очень длинная строка, которая нуждается в ' +
'чтобы обернуть через несколько строк, потому что' +
-иначе мой код будет нечитабелен.";
const longString =
"Это очень длинная строка, которую " +
"необходимо разбивать на несколько строк, " +
"потому что иначе её трудно читать.";
```

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

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

Ещё одна возможность-использовать шаблонные литералы, поддерживаемые в средах ECMAScript 2015:
Ещё одна возможностьиспользовать [шаблонные строки](/ru/docs/Web/JavaScript/Reference/Template_literals):

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

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

- {{jsxref("String")}}
- [Template literals](/ru/docs/Web/JavaScript/Reference/Template_literals)(шаблонные литералы)
- [Строковый литерал](/ru/docs/Web/JavaScript/Guide/Grammar_and_types#строковый_литерал)
- [Шаблонные строки](/ru/docs/Web/JavaScript/Reference/Template_literals)

0 comments on commit 4b062cf

Please sign in to comment.