在这个简单的例子函数中:
我想知道以下几点:
1. 在 for 循环中,我们每次迭代都会初始化一个名为 keepToCheck 的新变量,然后将其用于某些操作。这是否意味着每次都会创建一个新变量,因此可能存在 50,000 个 keepToCheck 变量存在于内存中(直到 GC 清除)?
或者 JS 引擎足够聪明,知道可以重复使用变量而不会创建重复项吗?
2. 如果我们在 for 循环外部初始化 var keepToCheck,然后只设置为 keepToCheck = videos[i];,是否有性能优势?
我一直在尝试研究这个问题,但在网络上找不到任何建议。
doSomething = function(withThisId) {
var videos = getVideos(), // array of videos
discovered = false
;
for(var i = 0; i < 50000; i++) {
var keepToCheck = videos[i];
if(keepToCheck.id == withThisId) {
discovered = true;
break;
}
}
return discovered;
};
我想知道以下几点:
1. 在 for 循环中,我们每次迭代都会初始化一个名为 keepToCheck 的新变量,然后将其用于某些操作。这是否意味着每次都会创建一个新变量,因此可能存在 50,000 个 keepToCheck 变量存在于内存中(直到 GC 清除)?
或者 JS 引擎足够聪明,知道可以重复使用变量而不会创建重复项吗?
2. 如果我们在 for 循环外部初始化 var keepToCheck,然后只设置为 keepToCheck = videos[i];,是否有性能优势?
我一直在尝试研究这个问题,但在网络上找不到任何建议。