版本

no-shadow-restricted-names

禁止識別符號遮蔽受限的名稱

建議

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

ES5 §15.1.1 全域物件的值屬性(NaNInfinityundefined)以及嚴格模式的受限識別符號 evalarguments 在 JavaScript 中被視為受限名稱。將它們定義為其他含義可能會產生意想不到的後果,並使閱讀程式碼的人感到困惑。例如,沒有任何東西阻止您寫下

var undefined = "foo";

那麼在相同作用域內使用的任何程式碼都將不會取得全域的 undefined,而是具有非常不同含義的本地版本。

規則詳細資訊

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

在遊樂場中開啟
/*eslint no-shadow-restricted-names: "error"*/

function NaN(){}

!function(Infinity){};

var undefined = 5;

try {} catch(eval){}

此規則的正確程式碼範例

在遊樂場中開啟
/*eslint no-shadow-restricted-names: "error"*/

var Object;

function f(a, b){}

// Exception: `undefined` may be shadowed if the variable is never assigned a value.
var undefined;

版本

此規則在 ESLint v0.1.4 中引入。

延伸閱讀

資源

變更語言