eslint/for-direction 正確性
作用
禁止 for
迴圈更新導致計數器朝錯誤的方向移動。
為什麼這不好?
一個永遠無法到達停止條件的 for
迴圈,例如一個計數器朝錯誤方向移動的迴圈,將會無限期地執行。雖然有時無限迴圈是故意的,但習慣上會將這種迴圈建構成 while
迴圈。更典型的情況是,無限 for
迴圈是一個錯誤。
此規則禁止 for
迴圈中的計數器變數以永遠無法滿足停止條件的方式變更。例如,如果計數器變數正在增加(即 i++
)並且停止條件測試計數器是否大於零(i >= 0
),則迴圈將永遠不會退出。
範例
此規則的不正確程式碼範例
js
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 (var i = 0; i < 10; i++) {}
for (var 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
}