用于无限循环中的循环的javascript

用于无限循环中的循环的javascript,javascript,Javascript,我在javascript中使用for循环创建了一个简单的计时器,但是当单击按钮调用函数test()时,整个页面都冻结了,所以我假设我在某个地方有一个无限循环 这是我的代码: <html> <head> <script> function test() { var HowLong = 5; for (var i=0;i<HowLong;i--) { document.write(HowLong[i] + "<br>

我在
javascript
中使用for循环创建了一个简单的计时器,但是当单击按钮调用函数test()时,整个页面都冻结了,所以我假设我在某个地方有一个无限循环 这是我的代码:

<html>
<head>
<script>
  function test() {
    var HowLong = 5;
    for (var i=0;i<HowLong;i--) {
      document.write(HowLong[i] + "<br>");
    }
  } 
</script>
</head>
<body>
  <input type="button" onclick="test()" value="Start Timer">
</body>
</html>

功能测试(){
var HowLong=5;
对于(var i=0;i试试这个

for (var i=0;i<HowLong;i++) {
    document.write(i + "<br>");
}
for(var i=0;i试试这个

for (var i=0;i<HowLong;i++) {
    document.write(i + "<br>");
}
for(var i=0;i试试这个

for (var i=0;i<HowLong;i++) {
    document.write(i + "<br>");
}
for(var i=0;i试试这个

for (var i=0;i<HowLong;i++) {
    document.write(i + "<br>");
}

for(var i=0;i是的,for循环中存在无限循环问题:

for (var i=0;i<HowLong;i--)
还有一件事
HowLong
不是数组,因此您不能使用
HowLong[i]
,只需使用:

document.write(i+ "<br>");

是的,for循环中存在无限循环问题:

for (var i=0;i<HowLong;i--)
还有一件事
HowLong
不是数组,因此您不能使用
HowLong[i]
,只需使用:

document.write(i+ "<br>");

是的,for循环中存在无限循环问题:

for (var i=0;i<HowLong;i--)
还有一件事
HowLong
不是数组,因此您不能使用
HowLong[i]
,只需使用:

document.write(i+ "<br>");

是的,for循环中存在无限循环问题:

for (var i=0;i<HowLong;i--)
还有一件事
HowLong
不是数组,因此您不能使用
HowLong[i]
,只需使用:

document.write(i+ "<br>");

var HowLong=5;
var isRun=false;
函数mf(i){
document.getElementById('myAnchor').innerHTML=i;
}
函数rt(i)
{
setTimeout(函数(){
mf(i++);
如果(i!=HowLong+1)rt(i);
否则isRun=false;
},1000);/1000ms=1秒
}
功能测试(){
var i=1;
如果(!isRun)
{
isRun=true;
rt(i);
}
} 
您忘记在循环中添加延迟


var HowLong=5;
var isRun=false;
函数mf(i){
document.getElementById('myAnchor').innerHTML=i;
}
函数rt(i)
{
setTimeout(函数(){
mf(i++);
如果(i!=HowLong+1)rt(i);
否则isRun=false;
},1000);/1000ms=1秒
}
功能测试(){
var i=1;
如果(!isRun)
{
isRun=true;
rt(i);
}
} 
您忘记在循环中添加延迟


var HowLong=5;
var isRun=false;
函数mf(i){
document.getElementById('myAnchor').innerHTML=i;
}
函数rt(i)
{
setTimeout(函数(){
mf(i++);
如果(i!=HowLong+1)rt(i);
否则isRun=false;
},1000);/1000ms=1秒
}
功能测试(){
var i=1;
如果(!isRun)
{
isRun=true;
rt(i);
}
} 
您忘记在循环中添加延迟


var HowLong=5;
var isRun=false;
函数mf(i){
document.getElementById('myAnchor').innerHTML=i;
}
函数rt(i)
{
setTimeout(函数(){
mf(i++);
如果(i!=HowLong+1)rt(i);
否则isRun=false;
},1000);/1000ms=1秒
}
功能测试(){
var i=1;
如果(!isRun)
{
isRun=true;
rt(i);
}
} 


你忘了在循环中添加延迟

有什么区别?它不再滞后,只需打印“未定义”的时间长度is@user3247345:因为您正试图访问一个数字(
HowLong[i]
)的属性
0
1
2
).数字没有这样的属性,数组通常有。有什么区别吗?它不再滞后,只是打印“未定义”的时间长度is@user3247345:因为您正试图访问一个数字(
HowLong[i]
)的属性
0
1
2
).数字没有这样的属性,数组通常有。有什么区别吗?它不再滞后,只是打印“未定义”的时间长度is@user3247345:因为您正试图访问一个数字(
HowLong[i]
)的属性
0
1
2
).数字没有这样的属性,数组通常有。有什么区别吗?它不再滞后,只是打印“未定义”的时间长度is@user3247345:因为您正试图访问一个数字(
HowLong[i]
)的属性
0
1
2
).数字没有这样的属性,数组通常有。简单的逻辑,在循环中,我永远不会>HowLong来打破条件,所以是无限循环。有两个问题:a)是的,你有一个无限循环,因为你没有计数。b)
HowLong
是一个数字,但你试图把它当作一个对象来使用(
HowLong[i]
)。您可能只想使用
i
only.c)即使你解决了这个问题,你实际上也看不到每次迭代的变化。循环的执行是如此的瞬时,以至于你只能看到最后一次迭代的变化。我建议阅读一篇关于JavaScript中基本数据类型的教程:@user3247345:我有一种强烈的感觉,你在实现倒数计时器..简单的逻辑,在循环中,我永远不会>嚎啕大哭来打破条件,所以循环是无限的。有两个问题:a)是的,你有一个无限的循环,因为你没有计数。b)
HowLong
是一个数字,但你试图把它当作一个对象来使用(
HowLong[i]
)。你可能只想使用
i
only.c)即使你解决了这个问题,你实际上也看不到每次迭代的变化。循环的执行是如此的瞬时,以至于你只能看到上一次迭代的变化。我建议你读一本关于JavaScript中基本数据类型的教程:@user3247345:我有一种奇怪的感觉,你的在实现倒计时的逻辑背后是完全错误的。简单的逻辑,在循环中,我永远不会>HowLong来打破条件,所以是无限循环。有两个问题:a)是的,你有一个无限循环,因为你没有计数。b)
HowLong
是一个数字,但你试图把它当作一个对象来使用(
HowLong[i]
)。您可能想使用
i