JS效能優化 之 FOR迴圈

similar發表於2018-08-02

FOR 迴圈我們用的真的是太多了,但你是否關注過它的優化寫法呢?記錄下:

 

1. 最最常規寫法,沒有任何不妥

for (var i = 0; i < 10; i++) {
    // do something...
}

 

2. 迴圈的次數為變數的情況

for (var i = 0; i < arr.length; i++) {
    // do something...
}

其實大多數人都是這種寫法,這種寫法的缺點在於,每次迴圈都要去讀取一次陣列的長度,不划算

 

3. 變數情況的優化寫法

for (var i = 0, l = arr.length; i < l; i++) {
    // do something...
}

將長度進行儲存,之後迴圈無需再去讀取長度

 

4. 上面3的寫法也可以這樣寫

var i = 0, l = arr.length;
        
for (; i < l; i++) {
    // do something...
}

這只是3的一種變體,另一種寫法而已,談不上優化。因為無塊級作用域,所以和3的效果是一樣的

 

5. 優化寫法升級版

for (var i = arr.length - 1; i >= 0; i--) {
    // do something...
}

推薦的寫法,它在第3種的基礎上節約了一個變數。

相關文章