JS性能优化 之 FOR循环

774

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种的基础上节约了一个变量。虽然这种写法最优雅,但是代码可读性却要差一些。

For循环这种优化其实微乎其微,但是蚊子腿也是肉,能优化一点是一点:)