版本

no-nonoctal-decimal-escape

禁止在字符串字面量中使用\8\9 转义序列

推荐

配置文件 中使用来自 @eslint/jsrecommended 配置将启用此规则

💡 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"*/

"\8";

"\9";

var foo = "w\8less";

var bar = "December 1\9";

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

var quux = "\0\8";

此规则的正确代码示例

在游乐场中打开
/*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 中引入的。

进一步阅读

资源

更改语言