首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个更有效率?( JavaScript循环的变量)

哪个更有效率?( JavaScript循环的变量)
EN

Stack Overflow用户
提问于 2013-10-29 09:19:25
回答 2查看 157关注 0票数 2

为了保持简单,坐在我的办公桌前,想知道(在JavaScript中)是否存在效率上的差异:

代码语言:javascript
复制
var i = 0;

for(i=0; i<Something.length; i++) foo();

for(i=0; i<Something.length; i++) foo();

还有..。

代码语言:javascript
复制
for(var i=0; i<Something.length; i++) foo();

for(var i=0; i<Something.length; i++) foo();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-29 09:22:47

这样做会更快,您将把Something.length缓存在变量中,这样就不会在循环期间解释它:

代码语言:javascript
复制
for(var i=0, len = Something.length; i<len; i++) foo();

这是一个测试

但是,如果不进行缓存,则从循环中移除var定义的速度会更快一些。

票数 4
EN

Stack Overflow用户

发布于 2013-10-29 09:24:54

我尝试了1000000个循环,第一个循环运行了2.7秒,第二个循环运行了2.418秒。

显然,第一个更快。

但是,由于JavaScript没有块作用域,在这两种情况下,i仍然可以从循环中获得,如果以后忘记插入,则可能会出现错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19654072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档