for循环中必需的变量声明?

时间:2015-01-27 03:48:10

标签: javascript keyword

有什么区别:

  • for (var i=0; i<5; i++) {}
  • for (i=0; i<5; i++) {}

是否有必要包含var关键字?

我理解var关键字会影响变量范围,但我无法理解是否需要在for循环中包含关键字。

3 个答案:

答案 0 :(得分:4)

在第二个示例中,您的变量是全局定义的,因此如果您在浏览器环境中,则可以从window对象访问它。

第一个相当于:

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

因为javascript中的所有变量都被提升到范围的开头。

答案 1 :(得分:0)

<强> 1

for (var i = 0; i < 5; ++i) {
  // do stuff
}

<强> 2

var i;
for (i = 0; i < 5; ++i) {
  // do stuff
}

第3

for (i = 0; i < 5; ++i) {
  // do stuff
}

1 2 是相同的。

3 你可能从不打算这样做 - 它将i放在全球范围内。

答案 2 :(得分:-2)

我假设你正在使用C#,Java或JavaScript。简短的回答是,如果尚未声明“i”,则需要var。如果已经宣布,则不需要。

例如:

var i;
for(i=1;i<=5;i++) {}

现在可能会有一些隐式变量输入,具体取决于语言和IDE,但依赖于隐式输入可能很难维护。

希望这有帮助,祝你好运!