【发布时间】:2010-09-10 13:25:53
【问题描述】:
在 AS3 中,我认为您应该初始化循环外的所有变量以提高性能。 JavaScript也是这种情况吗?哪个更好/更快/最佳实践?
var value = 0;
for (var i = 0; i < 100; i++)
{
value = somearray[i];
}
或
for (var i = 0 ; i < 100; i++)
{
var value = somearray[i];
}
【问题讨论】:
-
在外面!总是在外面。
-
嗯,在 Javascript 和 AS3 中变量声明不会被推到函数范围吗?如果我是对的,那真的没关系。
-
@Andy - 在函数体中声明之前,您是否尝试过分配?也许你的先入之见让你误入歧途。 WRT 性能,具有俯卧撑作用域,如果 JS 被解释,那么它将在循环块内咀嚼额外的循环。如果编译(现在大多数引擎都这样做)就没有关系了。
-
好问题!谢谢。阅读所有答案后,我相信如果它只是一个小循环或只是一个临时变量,我会将它们保留在需要的地方并且不会影响性能。如果一个 var 在函数内多次使用,为什么不在函数内引用它,最后全局变量可以放在 fn() 之外
-
我很惊讶没有人试图衡量性能。我创建了一个jsperf。在 Safari 和 Firefox 的循环中声明时似乎要快一些,而 Chrome 则相反……