我是否需要在for循环中声明迭代器?

时间:2011-07-05 09:09:26

标签: javascript

  

可能重复:
  Variable scope in Javascript for loop

for(i=0;i<4;i++){

}

我需要说:

for(var i=0;i<4;i++) ...?

否则事情将是全球性的,对吧?

3 个答案:

答案 0 :(得分:3)

不,您不需要在循环内声明迭代器变量。这也完全有效 -

var i;

for(i=0; i<4; i++)
    alert(i);

jsfiddle上的example

您可能还想查看有关变量范围的this部分以及有关MDN上功能范围的this页面。

答案 1 :(得分:1)

你是对的。如果你没有在for循环中声明变量,那么它会假设你指的是之前声明的变量“i”。如果未声明变量,那么您将收到错误。最好在for循环中声明迭代器。

答案 2 :(得分:0)

没有var

m-racoon:~ mkotsur$ node
> function test() {
... for(i=0;i<4;i++){
... console.log(i);
... }
... }
> test();
0
1
2
3
> console.log(i);
4

使用var

> function test1() {
... for(var j=0;j<4;j++){
... console.log(j);
... }
... }
> test1()
0
1
2
3
> console.log(j);
ReferenceError: j is not defined

所以,回答:是的。