问答详情
源自:8-5 计时器setTimeout()

题目中两个set

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

是不是这样理解。第一个set不会自动运行,第二个set开始调用函数。然后循环。函数内部有自运算,然后函数外部的set也在一直运行。然后就出现了一秒的时间数字+2的情况?

提问者:qq_慢热_7 2017-09-08 16:34

个回答

  • qq_涅槃_29
    2018-04-11 09:46:00

    那为什么我再function 加一个 startCount();不行呢?

  • 慕田峪5302042
    2017-09-26 15:40:58

    你的点击事件没有onclick="startCount()",第二个setTimeout("startCount()",1000);是可以不要的

  • 慕田峪5302042
    2017-09-26 15:37:14

    <!DOCTYPE HTML>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <title>计时器</title>

    <script type="text/javascript">

      var num=0;

      function startCount() {

        document.getElementById('count').value=num;

        num=num+1;

        setTimeout("startCount()",1000);

      }

      

    </script>

    </head>

    <body>

    <form>

    <input type="text" id="count" onclick="startCount()"/>

    </form>

    </body>

    </html>


  • 墨色浅年
    2017-09-08 20:15:37

    第一次执行外面这个set执行了这个函数,然后里面那个set每次都调用自己。形成了一个循环。