for(var i=0; i<10; i++) {someCode...}for(var i=0, len=arr.length; i<len; i++) {someCode...}请问这两种for循环,有什么区别?为什么需要这么写?
1 回答
30秒到达战场
TA贡献1828条经验 获得超6个赞
你的对比是有问题的,应该将你的第一个例子改为
for(var i=0; i<arr.length; i++) { someCode... }
这样才能和第二个进行对比。按照你之前的写法根本不具有对比性,一个是只会循环10次,一个是循环length次,这没有可比性,如同比较水和石头一样,实在难以回复。
如若是换成我上面的写法,那么区别为:在循环体中没有引起数组元素个数变化的情况下,两种是等价的,只是后者缓存了长度,原则上讲效率更高,但是现代浏览器早已对数组长度进行了优化,所以基本是没有区别的,缓存还是不缓存看你个人习惯。如果循环体中有引起数组元素个数变化的情况,那么循环进行的次数前者后和后者就不相同了。
添加回答
举报
0/150
提交
取消