Javascript 未完成循环

Javascript not completing a loop

本文关键字:循环 未完成 Javascript      更新时间:2023-09-26

我的程序应该从第一段中获取文本,复制100次,然后将其放入第二段中。但是当我执行此功能时:

<html>
<body>
<p id="first">First</p>
<p id="second">Second</p>
<script>
var i;
var word = document.getElementsByTagName('p')[0].innerHTML;
document.writeln(word); //Did this to check if it copied "first" correctly.
for (i=0; i<100; i++){
    word+=word;
    document.write(i) //Did this to see how man time it loops
}
document.getElementById("second").innerHTML = word;
</script>
</body>
</html>

它在 Safari 中返回以下内容(仅循环 27 次):

First
Second
First 0123456789101112131415161718192021222324252627

并在 Chrome 中返回以下内容(仅循环 24 次):

First
Second
First 0123456789101112131415161718192021222324

谢谢!

你的程序现在试图做的是使第二段包含 2^100 次"第一",因为你复制了重复项,在第一个循环之后你有 2*"第一",然后是 4*"第一"等。这显然会带来内存问题。如果你想让第二段只包含100次"第一",你可以只使用:

<script>
document.getElementById("second").innerHTML = 
document.getElementById("first").innerHTML.repeat(100)
</script>

你在那行中弄错了。 你添加word而不是你必须添加"i"。所以它应该是这样的:

word+=i;