版本

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 中引入。

資源

變更語言