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循环这种优化其实微乎其微,但是蚊子腿也是肉,能优化一点是一点:)