no-shadow-restricted-names
禁止限制名称的遮蔽(无阴影限制名称)
全局对象(ES5的价值§15.1.1属性NaN
,Infinity
,undefined
),以及严格限制模式标识符eval
和arguments
被认为在JavaScript中被限制的名字。将它们定义为其他意思可能会产生意想不到的后果,并使其他人阅读代码时感到困惑。例如,没有什么能够阻止你写作:
var undefined = "foo";
那么在相同范围内使用的任何代码都不会得到全局的undefined
,而是具有非常不同含义的本地版本。
规则细节
此规则的错误
代码示例:
/*eslint no-shadow-restricted-names: "error"*/
function NaN(){}
!function(Infinity){};
var undefined;
try {} catch(eval){}
此规则的正确
代码示例:
/*eslint no-shadow-restricted-names: "error"*/
var Object;
function f(a, b){}
Further Reading
相关规则
- no-shadowVersion此规则在 ESLint 0.1.4.Resources 中引入