版本

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 跳脫序列。

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

在遊樂場中開啟
/*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 中引入。

延伸閱讀

資源

變更語言