您的位置:首页 > Web前端 > JavaScript

js循环优化

2016-03-16 11:24 567 查看
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);
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: