【发布时间】:2012-08-03 00:05:03
【问题描述】:
在执行for循环之前用另一个变量的长度声明一个变量更有效还是应该在循环内计算长度。
我确定答案取决于计算长度的数组有多大。我只是总是看到
for ( var i = 1; i <= theVar.length; i++ ) {
}
但后来有人告诉我这样做的资源密集度较低
var theVarLen = theVar.length
for ( var i = 1; i <= theVarLen; i++ ) {
}
因为它避免了每次迭代都重新计算长度。
还是取决于具体情况,以至于无法做出明确的法令?
或者,这根本不重要..?
非常感谢!
【问题讨论】:
-
测试它:jsperf.com。但长话短说,长度不会重新计算,它是一个固定值,每当数组更改时都会更新。您每次迭代保存一个属性查找,这确实可以产生影响,具体取决于迭代次数(
->数组长度)。 -
作为旁注,我也经常看到这种方式:
for(var i = 0, len = a.length; i < len; i++) -
我见过
while (theLen-->=0) …。我认为有些人认为它看起来很酷,因为它有一个模棱两可的箭头操作符。我个人不喜欢它。 ;) -
@JosephMarikle 嗯。你认为这有什么好处?它正在做这两件事!
标签: javascript