js循环优化

  • for
  • do-while
  • while
  • for-in:枚举任何对象的命名属性,包括实例属性和原型链继承的属性,相对上面三个循环慢,若需迭代一个有限已知的属性列表,其他循环更快

循环需要注意影响性能的地方:
- 迭代次数
- 迭代处理
性能优化:
- 缓存数组长度
- 倒序循环,控制条件与0比较,相当于控制条件与true比较,非零数字自动强制转换为true
- 减少迭代次数,达夫设备,在一次迭代中执行多次迭代操作

var iterations = Math.floor(items.length / 8),
startAt = items.length % 8,
i = 0;
do {
switch(startAt){
case 0: process(items[i++]);
case 7: process(items[i++]);
case 6: process(items[i++]);
case 5: process(items[i++]);
case 4: process(items[i++]);
case 3: process(items[i++]);
case 2: process(items[i++]);
case 1: process(items[i++]);
}
startAt = 0;
} while (--iterations);
var i = items.length % 8;
while(i){
process(items[i--]);
}
i = Math.floor(items.length / 8);
while(i){
process(items[i--]);
process(items[i--]);
process(items[i--]);
process(items[i--]);
process(items[i--]);
process(items[i--]);
process(items[i--]);
process(items[i--]);
}

js数组的forEach,遍历一个数组的所有成员,并在每个成员上执行一个函数,每个元素上执行的函数作为forEach的参数传入进去,因为每个数组要关联额外的函数调用,造成速度慢

items.forEach(function(value, index, array){
process(value);
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值