for循环我们经常用,它的性能方面我们又了解多少呢!以下是我看书总结的,供大家参考。
在大多数编程语言中,代码执行时间大部分消耗在循环中。循环处理是最常见的编程模式之一,也是提升性能必须关注的要点之一。理解JS中循环对性能的影响至关重要,以为死循环或长时间运行的循环会严重影响用户体验。
for循环
四部分组成:初始化、前提条件、后执行体、循环体。
当代码遇到for循环时,先运行初始化代码,然后进入前提条件。如果前提条件的结果是true,则运行循环体。循环体执行完后,后执行代码开始运行。for循环直观的代码封装格式被开发者们所喜欢。
for(var i=0;i<10,i++){
//循环主体
}
while循环
是最简单的前构成:测循环,由一个前测条件和一个循环体 构成
var i=0;
while(i<10){
//循环主体
i++
}
do-while循环
是js中唯一一种后测循环,它由两部分组成,循环体和后测条件:
var i=0;
do{
//循环主体
}while(i++ <10)
for-in
该循环有个非常特别的用途“它可以枚举任意对象的属性名。基本格式如下:
for(var in obj){
//循环主体
}
循环性能
fon-in循环比其他几种明显要慢:
由于每次迭代操作会同时搜索实例和原型属性,for-in循环的每次迭代都会产生跟多的开销,所以比其他循环类型要慢。对比相同迭代次数的循环,for-in循环最终只有其他类型速度的 1/7。因此,除非你明确需要迭代一个属性未知的对象,否则应避免使用for-in循环。
注意:不要使用for-in来遍历数组成员。
除for-in循环外,其他类型的性能 都差不多,深究哪种循环最快没有什么意义。(不包含for-each和map)
倒序循环是编程语言中一种通用的性能优化方法,但一般来说不是那么容易理解,运行速度比原始快了50%-60%。
for(var i=item.length;i--){
}
var j=items.length
while(j--){
}
var k=item.length-1
do{
}while(i--)