版本

no-nonoctal-decimal-escape

不允許字串字面值中使用 \8\9 跳脫序列

建議

設定檔中使用來自 @eslint/jsrecommended 設定會啟用此規則

💡 有建議

此規則回報的某些問題可以透過編輯器建議手動修復

雖然在 ECMAScript 2021 之前語言中未指定,但在大多數 JavaScript 引擎中都允許字串字面值中使用 \8\9 跳脫序列,並將其視為「無用」的跳脫

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

自 ECMAScript 2021 以來,這些跳脫序列被指定為非八進制十進制跳脫序列,保留相同的行為。

儘管如此,ECMAScript 規範仍將字串字面值中的 \8\9 視為舊版功能。如果 ECMAScript 主機不是網路瀏覽器,則此語法是可選的。瀏覽器仍然必須支援它,但僅在非嚴格模式下。

無論您的目標環境為何,撰寫新程式碼時都不應使用這些跳脫序列。

規則詳細資訊

此規則不允許字串字面值中使用 \8\9 跳脫序列。

此規則的不正確程式碼範例

在 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";

版本

此規則在 ESLint v7.14.0 中引入。

延伸閱讀

資源

變更語言