計(jì)時(shí)器 定時(shí)器 閉包

1. setInterval() 計(jì)時(shí)器

計(jì)時(shí)器,每隔一個(gè)指定時(shí)間段,重復(fù)執(zhí)行的代碼塊或方法,以毫秒為單位,最小為10-15ms
有返回值,是頁(yè)面中第幾個(gè)計(jì)時(shí)器返回值就是幾
在火狐中,返回值從2開(kāi)始
在其他瀏覽器,返回值從1開(kāi)始
計(jì)時(shí)器中可嵌套計(jì)時(shí)器,但是不允許嵌套!??!

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

清除計(jì)時(shí)器

clearInterval()可取消由setInterval()設(shè)置的timeout,可以直接運(yùn)行,但是一般有觸發(fā)條件

clearInterval(set1); 可寫(xiě)計(jì)時(shí)器名或計(jì)時(shí)器ID

清除頁(yè)面全部計(jì)時(shí)器

\color{orange}{注意:}必須寫(xiě)在頁(yè)面底部

 function clearIntervalAll(){
        res可以得到頁(yè)面所有定時(shí)器
        根據(jù)clearInterval可以使用id清除計(jì)數(shù)器的原理
        借助 for 循環(huán) 將 id 寫(xiě)到 每一個(gè) clearInterval 里面
        這樣就可以清除頁(yè)面全部定時(shí)器

        var res=setInterval(function(){})
        for(var i=0;i<res;i++){
        clearInterval(i);
        }
    }

2. setTimeout() 定時(shí)器

定時(shí)器,規(guī)定指定時(shí)間ms后,執(zhí)行一次

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

3. 閉包

定義:

在函數(shù)內(nèi)部定義一個(gè)函數(shù), 在內(nèi)部函數(shù)中使用外部函數(shù)中的變量 , 并在全局環(huán)境中調(diào)用內(nèi)部函數(shù) 所形成的的閉包回路 叫 閉包

特點(diǎn):

可以使外部函數(shù)的局部變量暫存,不會(huì)銷毀

用途:

避免全局變量污染,變量長(zhǎng)期駐扎在內(nèi)存中

總結(jié):

函數(shù)內(nèi)聲明一個(gè)函數(shù),并對(duì)外層函數(shù)內(nèi)的變量進(jìn)行操作,而且在函數(shù)體外部觸發(fā)內(nèi)部函數(shù),這其中所形成的的閉合回路叫閉包

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容