2017-08-05 57 views
-6

我试图了解W3schools演示使用“For”循环的方式。从我的角度来看,它看起来凌乱当变量的声明内声明的,而外面,像这样:声明变量外循环不工作在JavaScript

var i = 0; 
for (statement) { 
code } 

由于一些没有看到与我提出的代码有什么区别,我想通ID后它作为一个代码段。这是我在循环外定义的var版本。

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<h2>JavaScript Loops</h2> 
 

 
<p id="demo"></p> 
 
<script> 
 
var text = ""; 
 
var i = 0; 
 
for (i < 5; i++) { 
 
    text += "The number is " + i + "<br>"; 
 
} 
 
document.getElementById("demo").innerHTML = text; 
 
</script> 
 

 
</body> 
 
</html>

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<h2>JavaScript Loops</h2> 
 

 
<p id="demo"></p> 
 
<script> 
 
var text = ""; 
 
var i; 
 
for (i = 0; i < 5; i++) { 
 
    text += "The number is " + i + "<br>"; 
 
} 
 
document.getElementById("demo").innerHTML = text; 
 
</script> 
 

 
</body> 
 
</html>

+0

这是工作的罚款。你的问题是什么 ? –

+0

“_But但是这样写不工作_”那么,当我点击运行它工作得很好,所以我不知道你的意思是... – csmckelvey

+0

我检查了在W3学校for循环的例子,是一样的你写的那个。 'var i = 0'可以放在声明里面或 –

回答

1

作为每MDN

为([初始化]; [条件]; [最终表达式]) 语句

您总是需要在for循环的第一个参数中进行初始化。

您可以在外面声明的变量,但你仍然需要在循环中再初始化它:

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

所有需要三个参数([initialization]; [condition]; [final-expression]

+0

这是因为for循环的运行方式与while相同吗?它需要一个条件才能运行?我认为这已经足够好了,例如: (条件){ } – Normar