Spec-Zone.ru › ESLint

no-nonoctal-decimal-escape

Запрет на использование последовательностей escape \8 и \9 в строковых литералах

✅ Recommended

Использование конфигурации recommended из @eslint/js в файле конфигурации активирует эту проверку

💡 hasSuggestions

Некоторые проблемы, выявленные этой проверкой, можно исправить вручную с помощью предложений редактора

Хотя не специфицированы в языке до ECMAScript 2021, последовательности escape \8 и \9 в строковых литералах были разрешены в большинстве движков JavaScript и обрабатывались как «бесполезные» escape-последовательности:

"\8" === "8"; // true
"\9" === "9"; // true

С ECMAScript 2021 эти последовательности escape определены как не-восьмеричные десятичные escape-последовательности, сохраняя при этом то же поведение.

Тем не менее, спецификация ECMAScript рассматривает \8 и \9 в строковых литералах как устаревшую функцию. Этот синтаксис является необязательным, если хост ECMAScript не является веб-браузером. Браузеры по-прежнему должны поддерживать его, но только в нестрогом режиме.

Независимо от вашей целевой среды, следует избегать использования этих escape-последовательностей при написании нового кода.

Подробности проверки

Эта проверка запрещает использование \8 и \9 escape-последовательностей в строковых литералах.

Примеры неправильного кода для этой проверки:

Открыть в Playground
/*eslint no-nonoctal-decimal-escape: "error"*/

"\8";

"\9";

var foo = "w\8less";

var bar = "December 1\9";

var baz = "Don't use \8 and \9 escapes.";

var quux = "\0\8";

Примеры правильного кода для этой проверки:

Открыть в Playground
/*eslint no-nonoctal-decimal-escape: "error"*/

"8";

"9";

var foo = "w8less";

var bar = "December 19";

var baz = "Don't use \\8 and \\9 escapes.";

var quux = "\0\u0038";

Связанные правила

  • no-octal-escape

Версия

Это правило было введено в ESLint v7.14.0.

Дополнительные материалы

Спецификация языка ECMAScript® 2023

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape

Spec-Zone.ru

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