setTimeout() ,setInterval()他们有什么区别?

来源:8-5 计时器setTimeout()

么么哒小七

2015-04-28 10:56

在十四行用setTimeout()调用和用setInterval()调用函数为什么会不一样。setTimeout() ,setInterval()他们有什么区别?

写回答 关注

8回答

  • Perona
    2015-04-28 11:53:57
    已采纳

    我给你注释一下JS代码吧。

      var num=0;              //定义变量num并赋值为0
      function startCount() {   //定义函数startCount
        document.getElementById('count').value=num;    //获取id为count并赋值为num
        num=num+1;        //这个就不用解释了吧
        setTimeout("startCount()",1000);  //setTimeout间隔1000毫秒去调用startCount函数

      }
       setInterval("startCount()",1000); //setInterval间隔1000毫秒去调用startCount函数


    其实你用setInterval方法的话,里面的setTimeout方法可以去掉的。因为setInterval方法会不断的去调用startCount函数。


    简单就会快乐

    46546545645

    2015-05-02 03:27:54

    共 4 条回复 >

  • 用户1102698
    2015-05-04 11:07:35

    ...

  • 简单就会快乐
    2015-05-02 03:28:15

    ??????????????????????????

  • 么么哒小七
    2015-04-28 23:00:45

    最佳答案设错了,请不懂的同学看下面的解释哈。


  • 告别之夏
    2015-04-28 20:11:59

    别人都回复了你那么多的东西,你都不把别人的回复设置为正确答案。

    简单就会快乐 回复简单就会快乐

    456

    2015-05-02 03:22:34

    共 6 条回复 >

  • Perona
    2015-04-28 15:54:05

    说错了。以这个为准。第一秒函数里面计数1,外面函数计数除了本身计数1还调用函数,所以1+1=2。第二秒的时候函数里面的code 自身再次调用 setTimeout(),也就是说函数里面是1+1=2,外面的setInterval()原本是2的,自增量是1,调用函数2,即2+1+2=5。第三秒的时候函数里面的code 自身再次调用 setTimeout()就是2+1=3,外面的setInterval()原本的值加自增量1,再加调用函数就是5+1+3=9。以此类推~~~~反正你只要记住函数外面和里面的code都在不断计算就可以啦。setInterval()递增的量除了1还有startCount()这个函数。

    么么哒小七

    你解释的太棒了,我懂了,哈哈。谢了。

    2015-04-28 17:16:07

    共 1 条回复 >

  • 么么哒小七
    2015-04-28 11:24:08

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>计时器</title>
    </head>
    <script type="text/javascript">
      var num=0;
      function startCount() {
        document.getElementById('count').value=num;
        num=num+1;
          setTimeout("startCount()",1000);
      }
       setInterval("startCount()",1000);
    </script>
    </head>
    <body>
    <form>
    <input type="text" id="count" />
    </form>
    </body>
    </html>

  • Perona
    2015-04-28 11:01:48

    setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。

    setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

    setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。


    么么哒小七

    我明白了谢谢大神,但是您能为我解释一下下面这个代码运行的原因么?

    2015-04-28 11:22:37

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题