有人请解释这个脚本

时间:2013-12-28 21:40:58

标签: javascript html dom

当我在浏览器中运行以下代码时。

<!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> 

单击“尝试”按钮下方会显示以下

The number is 0
The number is 1
The number is 2
The number is 3
The number is 4
。我的问题在于代码x=x + "The number is " + i + "<br>";的这一部分。如果将其替换为x="The number is " + i + "<br>";,则仅显示
 The number is 4
。有些人请解释为什么会这样。

2 个答案:

答案 0 :(得分:2)

因为x是显示的字符串。在循环的每个增量处,当等号的右侧的“x”保持所有旧的“数字是”+ i +“&lt; br&gt;”保持不变。当删除等号右侧的“x”时,旧的字符串将被覆盖,只显示较大的数字i。

答案 1 :(得分:0)

你需要的是一个封闭。在你的for循环中,试试这个脚本

     (function(x, i){
        x=x + "The number is " + i + "<br>";
     })(x, i);