问题描述
我正在尝试检测具有相同索引的嵌套循环,如下所示:
for(let i = 0; i < 10; i++) {
for(let i = 0; i < 10; i++) {
}
}
我已经搜索了 Eslint 规则,但到目前为止还没有找到任何解决方案。有没有办法检测这种糟糕的代码味道?非常感谢。
解决方法
ESLint 有 no-shadow
rule 可以标记它,以及其他用内部作用域变量遮蔽外部作用域变量的地方。例如:
{
"no-shadow": ["error",{ "builtinGlobals": false,"hoist": "functions","allow": [] }]
}
for(let i = 0; i < 10; i++) {
for(let i = 0; i < 10; i++) {
// ^−−−−− 'i' is already declared in the upper scope on line 1 column 9.
console.log(i);
}
}
,
你不能这样做,因为它是纯粹的逻辑