我是否需要在for循环中创建变量?

时间:2014-03-10 18:10:24

标签: javascript variables for-loop

我是JavaScript的新手,所以如果这个问题太愚蠢我很抱歉。有人告诉我,当你创建一个for - 循环时,你应该写:

for (var i = 0; i < 10; i++)

但有时我忘记将var放在i

之前
for (i = 0; i < 10; i++)

它的工作方式相同。我是否需要创建变量i

之间的主要区别是什么
var i = 0

i = 0

for - 循环?

7 个答案:

答案 0 :(得分:5)

不使用var创建变量仍会创建变量。不同之处在于它属于全局命名空间。应该避免这种情况,因为它增加了与其他函数具有相同名称的变量发生冲突的可能性。

答案 1 :(得分:1)

没有var声明的变量是可从任何地方访问的全局变量。使用全局变量被视为反模式,应该避免使用。

关于你的循环,没有必要,但不好的做法

答案 2 :(得分:1)

当您使用var声明变量时,其范围将受到限制,

如果不使用var,则变量将在全局范围内。这意味着您可以从任何地方访问此变量。

答案 3 :(得分:0)

你可以在循环前定义变量,就像这样

var i = 0;
for(i;i<10;i++)

这样就可以了。所以你可以在循环之前定义变量。循环中的变量是相同的,就像它之前一样。

答案 4 :(得分:0)

您可以像for循环一样使用while循环。

var i=0;
for(;;)
{
   // something need to perform
   i++;

   // breaks your loop here
   if(i > 10)
      break;
}

答案 5 :(得分:0)

不同之处在于您的浏览器需要知道是否要声明值为'0'的变量'i',或者您想要将'0'分配给已存在的变量'i'。
浏览器(或大多数)将知道是否已存在具有此类名称的变量,因为它可以只查找其变量库。但是对于我们这些人来说,将'var'放在它前面是非常有用的,所以我们知道这是声明。

在其他语言中,'var'或任何数据类型定义(如'int','char'或'bool')是必要的,但至少在Javascript中,它只是按顺序和易于阅读代码编写。< / p>

function someCode('awesome', 'hyper-fast'){
...
...
i = 0; // if this is a declaration, write 'var', so we know !
...
...
return 'backHome';
}

答案 6 :(得分:0)

基本上,您的代码有效,因为您正在创建一个全局变量。最佳做法是使用循环内部的var显式创建变量。这就是我所说的垃圾变量。它永远不会离开循环的范围,因此您可以继续为所有循环使用相同的变量名称(除非您正在嵌套)。