为什么用for循环不能实现从1到10每隔一秒打印一次?

为什么用for循环不能实现从1到10每隔一秒打印一次?

<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title>打开/关闭页面</title>

    </head>

    <body>       

       <script type="text/javascript">

           //补充代码

          var num;

          var max=10;

          var count=function(){

           document.write(num);

          }

          for(num=1; num<=max;num++){

           setTimeout(count,1000);

          }          

       </script>

    </body>

</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
怎么都被占用了呢 2017-10-01 21:48:13

在强调一次:for循环是一遍一遍的调用定时器,但是它的循环是很快的,第一个定时器的的1s计时开始的时候,第二遍循环也已经开始,并又定义一个定时器,这第二个计时开始,第3遍循环已经开始,整个循环的时间特别快,远远小于1s,所以几个定时器的调用时间的差不多的。如果还不懂,就去好好了解一下for循环和定期器的执行机制

怎么都被占用了呢 2017-10-01 19:07:55

因为for循环的过程,时间间隔是极小的。远远小于1s,也就是说,执行这段代码时,一瞬间的功夫,for循环先结束,然后执行累计的多个定时器,定时器之间的时间间隔也是极小的,所以会一下子全部输出。并且10次输出的num值都是num循环之后最终的值11。差不多同时的时间在页面内出现了10个11

  • 提问者 慕田峪7213717 #1
    可是,for循环里的代码不是要执行完一遍之后再执行第二第三遍吗?所以这里每执行一遍的时候,代码里都有1秒的等待时间呀。程序执行的顺序不是应该是这样的吗?还是不太能理解
    2017-10-01 19:18:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师