我想知道是否更有效的方法是在循环之外放置任何引用的变量,或者它们是否可以像函数中的变量一样收集垃圾?循环内部的局部变量是否被垃圾收集?
var obj = {key:'val'};
for(var i=0; i<10; i++){
console.log(obj);
}
或
for(var i=0; i<10; i++){
var obj = {key:'val'};
console.log(obj);
}
我试图运行在浏览器中的探查一些内存测试,但仍无法判断哪个方法更好。
请注意,在风格上(为了避免让代码读者感到困惑),建议始终在函数的开头定位'var'语句。 – intuited
@intuited,好点。我认为像JSLint这样的工具强制执行。 –
[It does](http://javascript.crockford.com/code.html#variable%20declarations)。 – intuited