Spec-Zone.ru › ESLint

no-nonoctal-decimal-escape

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

✅ Рекомендуемое

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

💡 Есть предложения

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

Хотя до 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";

const foo = "w\8less";

const bar = "December 1\9";

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

const quux = "\0\8";

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

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

"8";

"9";

const foo = "w8less";

const bar = "December 19";

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

const quux = "\0\u0038";

Параметры

У этого правила нет параметров.

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

  • no-octal-escape

Версия

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

Дополнительная литература

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

Ресурсы

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

© 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