• 一个简单的setTimeout的问题


    经常使用 setTimeout,并且自己认为也算比较熟悉这个函数的用法。

    不过今天碰到了,突然发现自己没有意识到这个问题。于是作为一个记录点,进行巩固一下。

    var timer = window.setTimeout(function(){
        console.log("this is setTimeout");
        console.log(timer);
    }, 1000);
    
    

     这里我并没有直接写出答案。此处并不是一个面试题之类的。因为经常需要用到。如下的写法

    if (timer) {
        window.clearTimeout(timer);  
    }
    console.log(clearRet);
    
    console.log(timer);

      此处会去清空 timeout,虽然进行了clearTimeout,但是 timer 还是有值的。 是一个具体的number

    因为第一次初始化的时候, timer 就已经有了。只是通过此 number(timeout的句柄)进行了 clear;

    所以还需要进行如下的赋值,才是正确的写法。

    window.clearTimeout(timer);
    timer = null;
    

      此时,进行 if (timer) 的判断才是较为合理的。

    此处只是一个小细节,但是经常会忽略,导致一些意想不到的问题。

  • 相关阅读:
    加关注
    UI设计
    敏捷开发
    java书箱
    怎么优化JAVA程序的执行效率和性能?
    sql访注入
    Matlab中plot函数全功能解析
    matlab分割背景与物体
    ssh免密码登录
    c++字符串详解(转)
  • 原文地址:https://www.cnblogs.com/asdfq/p/6759612.html
Copyright © 2020-2023  润新知