eslint/for-direction 正确性
它的作用
禁止 for 循环中更新语句使计数器向错误方向移动的情况,这会导致循环无法达到终止条件。
为什么这是不好的?
一个具有永远无法达到的终止条件的 for 循环将无限执行。虽然无限循环有时是故意设计的,但通常应使用 while 循环来表达。更常见的情况是,无限的 for 循环是一个错误。
示例
此规则的错误代码示例:
js
/* for-direction: "error" */
for (var i = 0; i < 10; i--) {}
for (var i = 10; i >= 0; i++) {}
for (var i = 0; i > 10; i++) {}
for (var i = 0; 10 > i; i--) {}
const n = -2;
for (let i = 0; i < 10; i += n) {}此规则的正确代码示例:
js
/* for-direction: "error" */
for (var i = 0; i < 10; i++) {}
for (var i = 0; 10 > i; i++) {
// 计数器 "i" 在右侧
}
for (let i = 10; i >= 0; i += this.step) {
// 方向未知
}
for (let i = MIN; i <= MAX; i -= 0) {
// 既不递增也不递减
}如何使用
要通过配置文件或命令行启用此规则,可以使用:
json
{
"rules": {
"for-direction": "error"
}
}bash
oxlint --deny for-direction