我不明白这个循环是如何工作的,请解释它如何打印输出

时间:2016-03-18 23:33:44

标签: javascript html

对突出显示区域的怀疑]

enter image description here

请帮助我澄清疑问,因为“文本”有助于打印下一个文字。

4 个答案:

答案 0 :(得分:2)

=>第一行var str =“Hello”;创建一个名为str的变量,其中包含字符串“Hello”。

=>第二行var arr = str.split(“”);首先创建一个名为arr的变量来存储数组。此数组的内容是字符串“Hello”中的每个字符,这是因为方法split用于存储“Hello”的变量

=>所以你在arr中存储的内容是这样的 | H | e | l | l | o |

=>数组的每个部分都有一个索引,可用于访问数组的内容,所以:

  • arr [0] = H
  • arr [1] = e
  • arr [2] = l
  • arr [3] = l
  • arr [4] = o

=>接下来的两行代码会创建两个将在循环中使用的变量: - i是用于控制循环的变量 - text是存储将成为HTML文档中p元素内容的内容的变量

=>然后你有你突出显示的部分。这是一个for循环。这个for循环。对于循环的每个循环,您的i变量(开始时为0)将增加1.当您的i变量达到等于数组长度的值时,循环将停止,即5

=&GT;因此,在循环的第一个循环中,i = 0,因此它通过了i <0的条件。 5.所以你在循环中执行语句,文本变量存储:

"H<br>" 

然后我增加1,所以我变成1

=&GT;因此,在循环的第二个循环中,i = 1,因此它通过了i <1的条件。 5.所以你在循环中执行语句,文本变量存储:

"H<br>e<br>" 

然后我增加1,所以我变成2

=&GT;因此,在循环的第二个循环中,i = 2,因此它通过了i <1的条件。 5.所以你在循环中执行语句,文本变量存储:

"H<br>e<br>l<br>" 

然后我增加1,所以我变成3

=&GT;因此,在循环的第四个循环中,i = 3,因此它通过了i <1的条件。 5.所以你在循环中执行语句,文本变量存储:

"H<br>e<br>l<br>l<br>" 

然后我增加1,所以我变成了4

=&GT;因此,在循环的第五个循环中,i = 4,因此它通过了i <1的条件。 5.所以你在循环中执行语句,文本变量存储:

"H<br>e<br>l<br>l<br>o<br>" 

然后我增加1,所以我变成5

=&GT;当i = 5时,它无法通过条件并退出循环。

=&GT;在最后一个语句中,带有id:demo的div的内容设置为文本,即

<p id="demo"></p>

成为:

<p id="demo">
H<br>e<br>l<br>l<br>o<br>
</p>

答案 1 :(得分:1)

首先,字符串“Hello”变为具有5个元素的数组。 arr.length为5,因为有5个元素。

text是一个变量。随着循环的进行,text的内容会增长:

Loop    Value
0       ""
1       "H<br>"
2       "H<br>E<br>"
3       "H<br>E<br>L<br>"
4       "H<br>E<br>L<br>L<br>"
5       "H<br>E<br>L<br>L<br>O<br>"

完成后,变量text的内容为:

"H<br>E<br>L<br>L<br>O<br>"

这就是注入<p>标签的内容。

答案 2 :(得分:1)

因为我是新手,所以我无法发表评论,所以这必须以答案的形式出现。所以逐行:

var str = "Hello";

var str设置为等于字符串&#34; Hello&#34;

var arr = str.split("");

var arr设置为等于var str,但拆分为段。在这种情况下每个字母。

var text = "";

var text只是一个空字符串。

var i;

var i是一个尚未分配的声明变量。

for(i=0; i < arr.length; i++) { text += arr[i]+"<br>"}

for循环将i设置为零,只要i低于arr的长度,它就会循环,我将递增。对于每次迭代,存储在位置i的arr中的字母将附加到文本变量,直到i等于arr的长度。

结果是str变量的文本,并附加了换行符。希望能为您解答这个问题。

答案 3 :(得分:1)

在您的代码中,text变量的作用类似于&#34;缓冲区&#34;。 str变量会被切入一个arr字符列表。

arr.lengtharr中的字符数,并且每个字符在此列表中都有一个数字。

所以,你的&#34; for&#34;循环说明:&#34;变量&#39; i&#39;是零;虽然&#39;我&#39;小于&#39; arr&#39;中的字符总数,将1添加到&#39; i&#39;&#34;

++表示:&#34;递增&#34;,它只是添加1;

在循环的上下文中,在{ }括号之间,添加i来自arr的当前字符编号,然后每次添加(对于每个你的text变量(缓冲区) - 还有一个html&#34; break&#34; <br>

i不再小于arr数组(列表)的长度时,循环完成,text包含所有字符;所以它只是打印到屏幕上。