当我在浏览器中运行以下代码时。
<!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。有些人请解释为什么会这样。
答案 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);