计时器+定时器+闭包

1. setInterval()

计时器,每隔一个指定时间段,重复执行的代码块或方法,以毫秒为单位,最小为10-15ms
有返回值,是页面中第几个计时器返回值就是几
在火狐中,返回值从2开始
在其他浏览器,返回值从1开始
计时器中可嵌套计时器,但是不允许嵌套!!!

var set1 = setInterval(function () {
        box1.style.backgroundColor = `rgb(${rand(0, 255)},${rand(0, 255)},${rand(0, 255)})`;
    }, 500);

清除计时器

clearInterval()可取消由setInterval()设置的timeout,可以直接运行,但是一般有触发条件
clearInterval(set1); 可写计时器名或计时器ID

清除页面全部计时器

\color{orange}{注意:}必须写在页面底部

 function clearIntervalAll(){
        // res可以得到页面所有定时器
        // 根据clearInterval可以使用id清除计数器的原理
        // 借助 for 循环 将 id 写到 每一个 clearInterval 里面
         // 这样就可以清除页面全部定时器
        var res=setInterval(function(){})
        for(var i=0;i<res;i++){
            clearInterval(i);
        }
    }

2. setTimeout()

定时器,规定指定时间ms后,执行一次

 var i = 10;
    setInterval(function(){
        console.log(i--);
    },1000)

3. 闭包

定义:

在函数内部嵌套定义一个函数,在内部函数中,操作外部函数的变量,并在函数外调用内部的操作函数,才会形成闭包

特点:

可以使外部函数的局部变量暂存,不会销毁

用途:

避免全局变量污染,变量长期驻扎在内存中

总结:

函数内声明一个函数,并对外层函数内的变量进行操作,而且在函数体外部触发内部函数,这其中所形成的的闭合回路叫闭包

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容