JavaScript倒計(jì)時(shí)定時(shí)器和間隔定時(shí)器使用詳解
定時(shí)器
在 js 里面,有兩種定時(shí)器,倒計(jì)時(shí)定時(shí)器 和 間隔定時(shí)器
倒計(jì)時(shí)定時(shí)器也叫一次性定時(shí)器或者叫延時(shí)定時(shí)器
間隔定時(shí)器也叫間歇定時(shí)器或者叫反復(fù)性定時(shí)器
倒計(jì)時(shí)定時(shí)器
倒計(jì)時(shí)多少時(shí)間以后執(zhí)行函數(shù)
語(yǔ)法: setTimeout(要執(zhí)行的函數(shù),多長(zhǎng)時(shí)間以后執(zhí)行)
會(huì)在你設(shè)定的時(shí)間以后,執(zhí)行函數(shù)
var timerId = setTimeout(function () { console.log('我執(zhí)行了')//1秒后執(zhí)行我執(zhí)行了 只執(zhí)行一次 }, 1000) console.log(timerId) // 1 這個(gè)1說明頁(yè)面上只有一個(gè)定時(shí)器
時(shí)間是按照毫秒進(jìn)行計(jì)算的,1000 毫秒就是 1秒鐘
所以會(huì)在頁(yè)面打開 1 秒鐘以后執(zhí)行函數(shù)
只執(zhí)行一次,就不在執(zhí)行了
返回值是,當(dāng)前這個(gè)定時(shí)器是頁(yè)面中的第幾個(gè)定時(shí)器
間隔定時(shí)器
每間隔多少時(shí)間就執(zhí)行一次函數(shù)
語(yǔ)法: setInterval(要執(zhí)行的函數(shù),間隔多少時(shí)間)
var timerId = setInterval(function() { console.log('我執(zhí)行了')//間隔1秒執(zhí)行一次 我執(zhí)行了 }, 1000) console.log(timerId);//1 這個(gè)1說明頁(yè)面上只有一個(gè)定時(shí)器
時(shí)間和剛才一樣,是按照毫秒進(jìn)行計(jì)算的
每間隔 1 秒鐘執(zhí)行一次函數(shù)
只要不關(guān)閉,會(huì)一直執(zhí)行
返回值是,當(dāng)前這個(gè)定時(shí)器是頁(yè)面中的第幾個(gè)定時(shí)器
定時(shí)器的返回值
設(shè)置定時(shí)器的時(shí)候,他的返回值是部分 setTimeout 和 setInterval 的
只要有一個(gè)定時(shí)器,那么就是一個(gè)數(shù)字
var timerId = setTimeout(function () { console.log('倒計(jì)時(shí)定時(shí)器') }, 1000) var timerId2 = setInterval(function () { console.log('間隔定時(shí)器') }, 1000) console.log(timerId) // 1 console.log(timerId2) // 2
js的異步代碼執(zhí)行機(jī)制
同步
代碼從上到下依次執(zhí)行, 上一行沒有執(zhí)行完畢, 下一行不會(huì)開始
異步
當(dāng) js 遇到異步代碼的時(shí)候, 會(huì)先拿出來(lái), 放在異步隊(duì)列內(nèi)等待, 暫時(shí)不執(zhí)行
因?yàn)?js 是一個(gè)單線程的代碼, 同時(shí)只能做一個(gè)事情
同步和異步的執(zhí)行時(shí)間
同步代碼優(yōu)先執(zhí)行,執(zhí)行完了同步代碼以后在去執(zhí)行異步代碼。
異步代碼在宿主環(huán)境中執(zhí)行 執(zhí)行完畢以后存放到任務(wù)隊(duì)列中
同步代碼執(zhí)行完畢以后時(shí)間循環(huán)機(jī)制Event loop回去任務(wù)隊(duì)列中調(diào)用異步代碼
把異步任務(wù)添加到執(zhí)行棧中進(jìn)行執(zhí)行
console.log('start') // start 第一打印出來(lái)的 setTimeout(function() { console.log('timeout') //timeout 最后打印出來(lái)的 }, 0) console.log('end')//end 第二打印出來(lái)的
以上就是JavaScript倒計(jì)時(shí)定時(shí)器和間隔定時(shí)器使用詳解的詳細(xì)內(nèi)容,更多關(guān)于JavaScript定時(shí)器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- js實(shí)現(xiàn)日期天數(shù)、時(shí)分秒的倒計(jì)時(shí)完整代碼
- JavaScript實(shí)現(xiàn)倒計(jì)時(shí)功能2種方法實(shí)例
- 一步步教你用js簡(jiǎn)單實(shí)現(xiàn)新年倒計(jì)時(shí)
- JS實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)倒計(jì)時(shí)器
- javascript實(shí)現(xiàn)倒計(jì)時(shí)小案例
- JavaScript實(shí)現(xiàn)簡(jiǎn)單的倒計(jì)時(shí)效果
- 用JS寫了一個(gè)30分鐘倒計(jì)時(shí)器的實(shí)現(xiàn)示例
- JS利用時(shí)間戳倒計(jì)時(shí)的實(shí)現(xiàn)示例
相關(guān)文章
JavaScript數(shù)據(jù)結(jié)構(gòu)與算法
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)與算法,文章圍繞主題展開數(shù)據(jù)結(jié)構(gòu)與算法的概念,以及幾種常見的數(shù)據(jù)結(jié)構(gòu)是什么,有什么優(yōu)點(diǎn)和缺,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07JS關(guān)鍵字球狀旋轉(zhuǎn)效果的實(shí)例代碼
這篇文章主要介紹了JS關(guān)鍵字球狀旋轉(zhuǎn)效果的實(shí)例代碼。需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助2013-11-11JavaScript資源預(yù)加載組件和滑屏組件的使用推薦
這篇文章主要介紹了JavaScript資源預(yù)加載組件和滑屏組件的使用推薦,分別為preload和slide的用法講解,使用起來(lái)非常簡(jiǎn)單,需要的朋友可以參考下2016-03-03js中小數(shù)向上取整數(shù),向下取整數(shù),四舍五入取整數(shù)的實(shí)現(xiàn)(必看篇)
下面小編就為大家?guī)?lái)一篇js中小數(shù)向上取整數(shù),向下取整數(shù),四舍五入取整數(shù)的實(shí)現(xiàn)(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-02-02JS簡(jiǎn)單實(shí)現(xiàn)移動(dòng)端日歷功能示例
這篇文章主要介紹了JS簡(jiǎn)單實(shí)現(xiàn)移動(dòng)端日歷功能的方法,涉及javascript針對(duì)日期與時(shí)間的操作及顯示相關(guān)技巧,需要的朋友可以參考下2016-12-12JavaScript輸出所選擇起始與結(jié)束日期的方法
這篇文章主要介紹了JavaScript輸出所選擇起始與結(jié)束日期的方法,涉及javascript結(jié)合HTML5元素操作日期運(yùn)算的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-07-07調(diào)試代碼導(dǎo)致IE出錯(cuò)的避免方法
這篇文章主要介紹了避免調(diào)試代碼導(dǎo)致IE出錯(cuò)的方法,需要的朋友可以參考下2014-04-04淺談SpringMVC中post checkbox 多選框value的值(隱藏域方式)
下面小編就為大家分享一篇淺談SpringMVC中post checkbox 多選框value的值(隱藏域方式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-01-01