2013-02-03 41 views
0
<!DOCTYPE html> 
<html> 
<body> 

<p>Click the button to loop through a block of code five times.</p> 
<button onclick="myFunction()">Try it</button> 
<p id="demo"></p> 

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

</body> 
</html> 

我明白它是什么回报,但我不明白每个语句前的x。为什么x之前+“的数字是”

x = x + "The number is " + i + "<br>"; 
+0

我认为这可能有助于http://en.wikiversity.org/wiki/Introduction_to_Programming/Variables#Variables - 'X = X + 1 ...将这项任务看作一个数学方程,它绝对没有任何意义 - 没有价值等于自己加上一个。但我们不是在这里谈论数学。虽然它看起来像一个等式,但它是一个变量赋值,它指出“检索X的值,添加一个值,并将结果存回X.” ' – Stuart

回答

2

x是一个将在循环中增长的变量。

线:

x = x + "The number is " + i + <br> 

只是追加线 “的数为” + I +线 的端x的电流值。

认为这行的:

var y = x + "The number is " + i + <br> 
x = y 

在循环结束时,x是值得所有:

“的数目是0
数目是1
数量为2
数为3
数为4

相反,如果为x =‘’,你有X =‘你好’,那么最终的结果将是:

“你好,编号为0
数目是1
数量为2
数为3
数为4

+0

你能为我展示这件作品吗?我明白它的作用,但为什么? x =“”“号码是”然后我然后换行 它在哪里重新启动? –

+0

让我们一步一步:在开始时,x =“”。在for循环的第一次迭代之后,x值“该数字是0
”。第二次循环迭代确实:x =“该数字是0
”+“该数字是1
”。因此,在第二次循环迭代结束时,x =“该数字是0
该数字是1
”。第三个循环会执行:x =“该数字是0
数字是1
”+“数字是2
”,依此类推...... – GHL

+0

这不是它重新启动的问题,正如您在@GHL回答他使用“”来让你理解,x变成了一个变量,**包含**所有你继续追加的文本。你应该知道javascript中字符串的'+'运算符具有这种串联属性,这就是说,你**不会**消除先前分配的文本,没有替换,只是追加:) –

0
x = x + "The number is " + i + "<br>"; 

追加到的x指定的文本的当前值和将其存储回x。

+0

但是如果我指定x =“hello”而不是“”,那么它只在第一行返回“hello the number is”,之后它不再包含hello –

+0

@Jordan这是因为如果你写了x =“Hello “... 该特定行在FOR/NEXT LOOP之外,因此它只能被执行一次,而不会像TEXT内部的FOR/NEXT LOOP一样被执行多次 – Zeddy

相关问题