no-nonoctal-decimal-escape
禁止在字符串字面量中使用 `\8` 和 `\9` 转义序列
✅ 推荐
在 配置文件 中使用来自 `@eslint/js` 的 `recommended` 配置将启用此规则。
💡 hasSuggestions
此规则报告的一些问题可以通过编辑器 建议 手动修复。
尽管直到 ECMAScript 2021 才在语言中指定,但在大多数 JavaScript 引擎中都允许在字符串字面量中使用 `\8` 和 `\9` 转义序列,并将其视为“无用”转义。
"\8" === "8"; // true
"\9" === "9"; // true
从 ECMAScript 2021 开始,这些转义序列被指定为 非八进制十进制转义序列,保留相同的行为。
然而,ECMAScript 规范将字符串字面量中的 `\8` 和 `\9` 视为遗留特性。如果 ECMAScript 宿主不是 Web 浏览器,则此语法是可选的。浏览器仍然必须支持它,但仅在非严格模式下。
无论您的目标环境是什么,编写新代码时都不应使用这些转义序列。
规则详情
此规则禁止在字符串字面量中使用 `\8` 和 `\9` 转义序列。
此规则的错误代码示例
在游乐场中打开
/*eslint no-nonoctal-decimal-escape: "error"*/
"";
"";
var foo = "wless";
var bar = "December 1";
var baz = "Don't use and escapes.";
var quux = "\0";
此规则的正确代码示例
在游乐场中打开
/*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";
相关规则
版本
此规则在 ESLint v7.14.0 中引入。