zoukankan      html  css  js  c++  java
  • 关于js里cleartimeout的疑惑

    1.发现这样写连时间都不会有

    <script>
    var flag = 0;
    function startTime(){
        clearTimeout(t);
        var today=new Date();
        var h=today.getHours();
        var m=today.getMinutes();
        var s=today.getSeconds();// 在小于10的数字前加一个‘0’
        m=checkTime(m);
        s=checkTime(s);
        document.getElementById('txt').innerHTML=h+":"+m+":"+s;
        t=setTimeout(function(){startTime()},1000);
        
    }
    function checkTime(i){
        if (i<10){
            i="0" + i;
        }
        return i;
    }
    </script>

    2.而这样子的话会停,但是会显示时间

    function startTime(){
        
        var today=new Date();
        var h=today.getHours();
        var m=today.getMinutes();
        var s=today.getSeconds();// 在小于10的数字前加一个‘0’
        m=checkTime(m);
        s=checkTime(s);
        document.getElementById('txt').innerHTML=h+":"+m+":"+s;
        clearTimeout(t);
        t=setTimeout(function(){startTime()},1000);
        
    }

    3.发现这样子的话时间不会停但是,cleartimeout会执行

    <script>
    var flag = 0;
    function startTime(){
        
        var today=new Date();
        var h=today.getHours();
        var m=today.getMinutes();
        var s=today.getSeconds();// 在小于10的数字前加一个‘0’
        m=checkTime(m);
        s=checkTime(s);
        document.getElementById('txt').innerHTML=h+":"+m+":"+s;
        t=setTimeout(function(){startTime()},1000);
    }
    function checkTime(i){
        if (i<10){
            i="0" + i;
            if (flag > 2 )
            clearTimeout(t);
            flag += 1;
        }
        return i;
    }
    </script>

    4.结合3,这样写的话会停止执行代码

    <script>
    var flag = 0;
    function startTime(){
        t=setTimeout(function(){startTime()},1000);
        var today=new Date();
        var h=today.getHours();
        var m=today.getMinutes();
        var s=today.getSeconds();// 在小于10的数字前加一个‘0’
        m=checkTime(m);
        s=checkTime(s);
        document.getElementById('txt').innerHTML=h+":"+m+":"+s;
        
    }

    以上问题很是疑惑,希望能随着知识的增加而解决吧

  • 相关阅读:
    vue绑定值与字符串拼接两种写法
    cmd 总是很卡,执行一条指令就卡死
    生产工具vscode
    js 关于 array 的相关操作––
    webAssembly
    github上fork别人的分支到目录下  
    68.Promise和setTimeout的区别
    67、Promise 构造函数是同步执行还是异步执行,那么 then 方法呢?
    66、深入理解 promise:promise的三种状态与链式调用
    65.ES6新的特性有哪些?
  • 原文地址:https://www.cnblogs.com/WildSky/p/11025211.html
Copyright © 2011-2022 走看看