我用我最近购买的书来学习javascript。这本书解释了for循环的性能。也就是说,有2种风格,
A: for(var i=0; i<arr.length; i++){ //some code... }
B: for(var i=arr.length-1; i>-1; i--){ //some code... }
这本书描述了“风格B比A更好的表现”。这看起来似乎有道理,但是当java(不是javascript)语法我不关心这种情况时。所以我的问题是“风格B更有效”?提前谢谢你......
答案 0 :(得分:1)
在性能方面,使用递减运算符i--
不一定比递增运算符i++
更快。性能方面,它们都很快。
瓶颈与上升循环有关。对于每个数字,必须评估数组的大小。让我们来看看这两个案例。
降序循环
for (var i = array.length; i >= 1; i-- )
在初始化i变量时, array.length
仅被评估一次。
升序循环
for (var i = 1; i <= array.length; i++ )
每次array.length
递增时,都会评估 i
。你还必须检查i的值,以确保它小于数组的长度。
如需进一步见解,请查看以下博客文章