版本

for-direction

强制 for 循环更新子句以正确的方向移动计数器

推荐

配置文件中使用来自 @eslint/jsrecommended 配置启用此规则

具有永远无法达到的停止条件的 for 循环(例如计数器朝错误方向移动的循环)将无限运行。虽然有时无限循环是故意的,但约定是将此类循环构造为 while 循环。更典型的情况是,无限 for 循环是一个错误。

规则详情

此规则禁止 for 循环,其中计数器变量的变化方式使得永远无法满足停止条件。例如,如果计数器变量正在增加(即 i++)并且停止条件测试计数器是否大于零(i >= 0),则循环将永远不会退出。

此规则的错误代码示例

在 Playground 中打开
/*eslint for-direction: "error"*/
for (let i = 0; i < 10; i--) {
}

for (let i = 10; i >= 0; i++) {
}

for (let i = 0; i > 10; i++) {
}

for (let i = 0; 10 > i; i--) {
}

const n = -2;
for (let i = 0; i < 10; i += n) {
}

此规则的正确代码示例

在 Playground 中打开
/*eslint for-direction: "error"*/
for (let i = 0; i < 10; i++) {
}

for (let i = 0; 10 > i; i++) { // with counter "i" on the right
}

for (let i = 10; i >= 0; i += this.step) { // direction unknown
}

for (let i = MIN; i <= MAX; i -= 0) { // not increasing or decreasing
}

版本

此规则在 ESLint v4.0.0-beta.0 中引入。

资源

更改语言