【发布时间】:2014-08-30 06:47:19
【问题描述】:
我和我的同事一直在讨论在循环中使用 var 关键字的好/坏做法。 这是我的方式:
for (var i = 0; i < anArray.length; i++) {
for (var j = 0; j < anotherArray.length; j++) {
var a1 = someValue1;
var a2 = someValue2;
var a3 = someValue3;
var a4 = someValue4;
var a5 = someValue5;
...... //Some other process that involve a1-5
}
}
我在嵌套的 for 循环中使用了 var。假设循环 i 运行 2000 次,j 运行 3000 次。我的同事声称 在这样的循环中使用 var 是导致内存泄漏的原因,因此是一种不好的做法。 这是真的吗?
他说“var 应该在循环之外声明,以便变量受制于函数范围并在范围结束时被销毁。” 这是真的吗?
除了上述关于内存泄漏的声明之外,这是一种不好的做法,如果是,为什么?
我对此表示怀疑,因为我知道(或相信)在循环中使用 var,a1-5 在此函数结束时仍会被破坏。
【问题讨论】:
-
将
var关键字放在哪里并不重要。 Javascript 中的变量总是有函数作用域。 -
@Gpx 谢谢。我搜索的时候没有出现。也许是因为我在搜索中使用了 'var 关键字' :(
标签: javascript loops memory-leaks var