我想知道是否更有效的方法是在循環之外放置任何引用的變量,或者它們是否可以像函數中的變量一樣收集垃圾?循環內部的局部變量是否被垃圾收集?
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