我经常看到这个习惯:
var foo, bar;
for(var i = 0; i < 5; i++) {
foo = '' + foo + i;
}
它也被我擦掉了,但我刚刚意识到我不知道为什么要这样做。
答案 0 :(得分: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”语句。这不是什么大不了的事,但随着时间的推移它们肯定会增加。