1. setInterval()
計(jì)時(shí)器,每隔一個(gè)指定時(shí)間段动知,重復(fù)執(zhí)行的代碼塊或方法皿伺,以毫秒為單位,最小為10-15ms
有返回值盒粮,是頁面中第幾個(gè)計(jì)時(shí)器返回值就是幾
在火狐中鸵鸥,返回值從2開始
在其他瀏覽器,返回值從1開始
計(jì)時(shí)器中可嵌套計(jì)時(shí)器拆讯,但是不允許嵌套V小Q选!
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); 可寫計(jì)時(shí)器名或計(jì)時(shí)器ID
清除頁面全部計(jì)時(shí)器
必須寫在頁面底部
function clearIntervalAll(){
// res可以得到頁面所有定時(shí)器
// 根據(jù)clearInterval可以使用id清除計(jì)數(shù)器的原理
// 借助 for 循環(huán) 將 id 寫到 每一個(gè) clearInterval 里面
// 這樣就可以清除頁面全部定時(shí)器
var res=setInterval(function(){})
for(var i=0;i<res;i++){
clearInterval(i);
}
}
2. setTimeout()
定時(shí)器,規(guī)定指定時(shí)間ms后汁讼,執(zhí)行一次
var i = 10;
setInterval(function(){
console.log(i--);
},1000)
3. 閉包
定義:
在函數(shù)內(nèi)部嵌套定義一個(gè)函數(shù)淆攻,在內(nèi)部函數(shù)中,操作外部函數(shù)的變量嘿架,并在函數(shù)外調(diào)用內(nèi)部的操作函數(shù)瓶珊,才會(huì)形成閉包
特點(diǎn):
可以使外部函數(shù)的局部變量暫存,不會(huì)銷毀
用途:
避免全局變量污染耸彪,變量長期駐扎在內(nèi)存中
總結(jié):
函數(shù)內(nèi)聲明一個(gè)函數(shù)伞芹,并對(duì)外層函數(shù)內(nèi)的變量進(jìn)行操作,而且在函數(shù)體外部觸發(fā)內(nèi)部函數(shù)蝉娜,這其中所形成的的閉合回路叫閉包