<分区>
我在 Ember.js 中看到了这个片段:
for (var i=0, l=deps.length; i<l; i++) {
if (deps[i] === 'exports') {
reified.push(exports = {});
} else {
reified.push(requireModule(resolve(deps[i])));
}
}
请看var i=0, l=deps.length; i<l; i++
, deps
的长度在循环之前定义。我想知道为什么他们必须这样做而不是只使用 var i=0; i<deps.length; i++
.我认为这可能是一个“性能技巧”,所以我决定在 jsperf 上进行测试:
http://jsperf.com/predefined-length-vs-inline-defined-length
结果显示第二个更快。所以他们使用第一个肯定有另一个原因。
有人知道吗?非常感谢。