对于JavaScript中的循环变体

前端之家收集整理的这篇文章主要介绍了对于JavaScript中的循环变体前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
this网站有一个循环变化的列表.我可以理解for(var i = 0,len = arr.length; i 用法,因为arr.length不是在每个步骤中计算似乎是一个边际性能增益.然而,使用其他变体的优点是什么?例如,循环如="" > for(var i = arr.length; i–;)
> for(var i = 0,each; each = arr [i]; i)

使用不同的循环变化,性能是否有明显的变化?我通常用于(var i = 0,len = arr.length; i

被广泛认为是反向while循环
var loop = arr.length;
while( loop-- ) {
}

是C类语言中最快的循环类型(这也适用于ECMAscript一段时间,但是我认为所有最新的引擎甚至在今天的标准循环中也是如此). (jsperf)

你的’变体’实际上没有变化,只是在for循环中使用条件语句(实际上使它变成一个变量).喜欢

1)for(var i = arr.length; i–;)

只需使用for循环中的条件部分来进行两者,迭代和检查,如果我有一个真值.一旦我变为0,循环就会结束.

2)for(var i = 0,each; each = arr [i]; i)

这里我们从每个迭代中获取元素,所以我们可以在循环体内直接访问它.当你厌倦了总是重复arr [n]时,这是常用的.

在循环之前缓存.length属性效果很好.正如你正确地提到的,它更快,因为我们不必在每次迭代中访问该属性.除此之外,在处理像HTMLCollections这样的“活动结构”时,还需要在DOM脚本中.

转载注明原文:对于JavaScript中的循环变体 - 代码日志

解决方法

被广泛认为是反向while循环
var loop = arr.length;
while( loop-- ) {
}

是C类语言中最快的循环类型(这也适用于ECMAscript一段时间,但是我认为所有最新的引擎甚至在今天的标准循环中也是如此). (jsperf)

你的’变体’实际上没有变化,只是在for循环中使用条件语句(实际上使它变成一个变量).喜欢

1)for(var i = arr.length; i–;)

只需使用for循环中的条件部分来进行两者,循环就会结束.

2)for(var i = 0,each; each = arr [i]; i)

这里我们从每个迭代中获取元素,这是常用的.

在循环之前缓存.length属性效果很好.正如你正确地提到的,还需要在DOM脚本中.

原文链接:https://www.f2er.com/js/152516.html

猜你在找的JavaScript相关文章