# no-nonoctal-decimal-escape

禁止字符串字面中的 \8\9 转义序列

配置文件中的 "extends": "eslint:recommended" 属性启用了该规则

尽管直到 ECMAScript 2021 才在语言中指定,但大多数 JavaScript 引擎都允许字符串字面中的 \8\9 转义序列,并将其视为 "useless" 转义:

"\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";
Last Updated: 5/13/2023, 8:55:38 PM