我相信类似的问题之前已经被问过了,但是大量类似的问题并没有回答我的问题,所以我必须自己提问。
假设你有以下代码:
(function() {
"use strict";
var somearray=[1, 2, 3];
for(var i=0; i<somearray.length; i++) {
//do something
}
function loop() {
//do something repeatedly
requestAnimationFrame(loop);
}
loop();
})();
由于变量i定义在一个永久循环的相同作用域中,即使未使用,它是否继续存在,等待可能最终被使用的可能性?或者JavaScript(特别是Chrome的V8)的垃圾回收器足够聪明,能够确定它是否会被使用?
我知道可以在循环中的某个位置添加
console.log(i)
,然后只要它被引用,i将继续存在,但在继续存在的作用域内,如果没有引用它,它还会继续存在吗?
i
变量还是数组?“在循环中添加 console.log(i) 并且 i 将继续存在” 暗示着是i
变量,但询问数组似乎更有意义? - adeneoi
,谢谢。 - user1948076