我相信在SO上看到过这方面的讨论,但现在无法找到。简单来说,在循环语句中声明增量是否存在缺点?下面两种方式有什么区别:
function foo() {
for (var i=0; i<7; i++) {
// code
}
}
...还有这个:
function foo() {
var i;
for (i=0; i<7; i++) {
// code
}
}
因为JS有函数作用域,所以两种方式都可以,对吗?但是是否存在边界情况,前一种方法会导致问题?
如果它们相同,那么为什么Crockford/JSLint完全不允许呢?