0

我经常看到这样的习惯:

var foo, bar;
for(var i = 0; i < 5; i++) {
    foo = '' + foo + i;
}

它也对我产生了影响,但我刚刚意识到我不知道我为什么要这样做。

4

1 回答 1

3

这样做没有真正的问题,但是 javascript 没有块级范围,因此如果您在循环内声明 foo ,它仍然可以在整个函数中访问。

如果您预先声明所有变量,则在进行缩小时有一个小优势,请考虑:

// Up front
var a, b, c, aVal, bVal, cVal;

for (a = 0; a < 5; ++a) {
    aVal = a;
}

for (b = 0; b < 5; ++b) {
    bVal = b;
}

for (c = 0; c < 5; ++c) {
    cVal = c;
}

// Inline
for (var a = 0; a < 5; ++a) {
    var aVal = a;
}

for (var b = 0; b < 5; ++b) {
    var bVal = b;
}

for (var c = 0; c < 5; ++c) {
    var cVal = c;
}

在这种情况下,当您缩小时,您的源代码中会出现更多的“var”语句。这不是什么大不了的事,但随着时间的推移,它们肯定会加起来。

于 2012-11-10T01:39:41.487 回答