问答详情
源自:8-17 编程练习

i=setInterval()进行倒计时设置时为什么不定义这个i就不能进行倒计时?

<!DOCTYPE html>
<html>
 <head>
  <title>浏览器对象</title>  
  <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>   
 </head>
 <body>
  <!--先编写好网页布局-->
  <h2>操作成功</h2>
  <div>
      <span id="second">5</span>
      秒后回到主页 <a href="javascript:window.back()">返回</a>
      </div>
 
  <script type="text/javascript">  
 
   //获取显示秒数的元素,通过定时器来更改秒数。
    var num=document.getElementById("second").innerHTML;
    function timechange(){
        if(num>=1){
            document.getElementById("second").innerHTML=num--;
        }
        else{
            window.location.assign("https://imooc.com/");
        }
    }
    i=setInterval("timechange()",1000);
   //通过window的location和history对象来控制网页的跳转。
 </script>
</body>
</html>


===========

上面这个编程练习我尝试将【 i=setInterval("timechange()",1000);】改成

【setInterval("timechange()",1000);】

这个倒计时就无法进行,这是为什么啊?这个i在整个代码里并没有明确的调用啊,它出了存储setInterval的地址外有什么作用吗?看了好多人的提问和回答还是不是很明白,有大佬解惑吗?

=============

更新,我后来可以运行了,跟i没有关系,i在这里只是个没用到的变量


提问者:小拖拖 2020-05-21 22:43

个回答

  • 慕哥00470507
    2020-07-04 13:32:58

    【setInterval("timechange()",1000);】或者【setInterval(timechange,1000);】是正确写法。

    可能你之前写成【setInterval(timechange(),1000);】这样子了,我也找了很久写成这个样子

  • 几盎丶
    2020-06-02 16:41:36

    http://img2.mukewang.com/5ed610ae0001dd9006740767.jpg

    试着样子吗,我是可以运行的。

  • 二十多岁的老王
    2020-06-01 21:31:50

    我觉可以写出倒计时,只要利用推迟时间轴的的方式


  • 慕的地7165257
    2020-05-31 10:11:06

    .....