为了保持简单,坐在我的办公桌前,想知道(在JavaScript中)是否存在效率上的差异:
var i = 0;
for(i=0; i<Something.length; i++) foo();
for(i=0; i<Something.length; i++) foo();还有..。
for(var i=0; i<Something.length; i++) foo();
for(var i=0; i<Something.length; i++) foo();发布于 2013-10-29 09:22:47
这样做会更快,您将把Something.length缓存在变量中,这样就不会在循环期间解释它:
for(var i=0, len = Something.length; i<len; i++) foo();这是一个测试
但是,如果不进行缓存,则从循环中移除var定义的速度会更快一些。
发布于 2013-10-29 09:24:54
我尝试了1000000个循环,第一个循环运行了2.7秒,第二个循环运行了2.418秒。
显然,第一个更快。
但是,由于JavaScript没有块作用域,在这两种情况下,i仍然可以从循环中获得,如果以后忘记插入,则可能会出现错误。
https://stackoverflow.com/questions/19654072
复制相似问题