【JavaScript】循环优化

减少每次循环工作量

首先看看for遍历一个数组每次循环的工作量

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

1.查找一次arr的长度

2.比较一次i和arr.length的值

3.判断比较结果为true或false

4.执行for循环内的操作

5.i变量的自增(如果步骤3中判断结果为true的话)

存储arr.length的值

每次我们都要去查找一次length的值,那么我们为什么不先在设置初始条件时使用一个变量来存储arr的length值呢。

减少在循环内计算或者操作

1、实例化变量放在for循环外,减少实例化的次数

2、把能在循环外计算的,尽量在循环外计算,减少在内层的运算,有判断条件的语句和与循环不相关的操作语句尽量放在for外面

3、应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数

倒序循环

for(var i=arr.length;i--;){
    //...操作
}

此时每次循环的步骤变为

1.i==true的判断(i为0时等式即成立)

2.i变量的自减

3.执行循环内的操作

可以看到,倒序操作实际上就是将i和数组长度的比较和判断为true或false这两步合并,不用比较长度了,也不用判断了,以此来得到性能上的优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值