问答详情
源自:4-6 反反复复(while循环)

这个该怎么理解?

如下代码。先定义了var x="",就是空字符串。那么这个x=x + "The number is " + i + "<br>";该怎么理解?当i=0时,x就应该是”The number is 0“。那么当i=1时,这时的x值已经是"The number is 0"了,在循环一次"x=x + "The number is " + i + "<br>";",x就变成了"The number is 0 The number is 1"了,但是输出结果并不是啊,它只是"The number is 1"。这时为啥呢?我知道自己这个问题有点幼稚,可是就是想不通。

提问者:天窗的蚂蚁 2016-01-28 15:41

个回答

  • 荷兰酒
    2016-02-12 19:44:41
    已采纳

    这么长时间了.楼主可能已经想明白了.不过我还是说说吧.
    因为楼主是在最后才输出的全部信息.也就是说楼主把输出语句放错地方了.
    想要达到楼主想要的那种效果, 要把输出语句放在循环里面.
    这样:
    <!DOCTYPE html>
    <html>
        <head>
      <meta charset="utf-8">
     </head>
     <body>
      <script>
       var x = "";
                var i = 0;
       while (i < 5) {
        x = x + "&nbsp;&nbsp;&nbsp;The number is " + i;
                    document.write(x + "<br />");
                    i++;
       }
                document.write("完毕<br />");
                // 最后一次输出
                document.write(x);
      </script>
     </body>
    </html>


  • 大块吃肉188
    2016-08-04 16:59:04

    楼主知道答案了麽,我也奇怪为什么输出问题,第一次循环时,i=0,x=This number is 0  。然后i=1,再进入循环,x=This number is 0  The number is 1。我在第15行后面加了一句document.write(x); ,但是结果不是这样,奇怪了,,,想不通。

  • qq_lzY
    2016-01-28 17:33:27

    代码没错,浏览器的问题

  • qq_lzY
    2016-01-28 17:33:21

    代码没错,浏览器的问题

  • qq_没有太阳的夜晚_0
    2016-01-28 15:47:49

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

    你看这里。。x= x  就是这里问题

    你如果写成 X = "The XXX"这样就没问题了。