日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【学习笔记33】JavaScript延时器定时器和异步程序

發(fā)布時間:2024/3/26 javascript 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习笔记33】JavaScript延时器定时器和异步程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、計時器 (setInterval)

  • 語法: setInterval(function(){每次執(zhí)行定時器時要做的事}, 時間)時間的單位是毫秒
  • 返回值: (時間ID)
    • 值取決于你當(dāng)前的定時器是這個頁面的第幾個定時器, 返回值可以用于關(guān)閉定時器
  • 關(guān)閉定時器: clearInterval(時間ID)
var count = 0;var timer = setInterval(function () {count++;console.log(count);if (count == 5) {clearInterval(timer);}}, 1000)

2、 倒計時器 (setTimeout)

  • 語法:setTimeout(function () {倒計時時間滿足時, 要執(zhí)行的一段代碼}, 時間)*時間的單位是毫秒
  • 返回值:(時間ID)
    • 值取決于你當(dāng)前的定時器是這個頁面的第幾個定時器, 返回值可以用于關(guān)閉定時器
  • 關(guān)閉倒計時器: clearTimeout(時間ID)
var timer1 = setTimeout(function(){ ?console.log('我是倒計時器');}, 3000) ?clearTimeout(timer1);
  • 關(guān)閉定時器: clearInterval 和 clearTimeout
  • 正常來說兩個方法可以混用, 不會出錯
  • 但是根據(jù)語義來說clearTimeout用于關(guān)閉setTimeout;clearInterval用于關(guān)閉setInterval

3、簡單了解異步代碼

  • JS的運行是單線程的(執(zhí)行代碼從第一行開始,往下執(zhí)行, 上一行不結(jié)束, 不會運行下一行代碼)
  • 但是萬一上一行代碼比較耗時(5S), 那么我下一行代碼就需要等待5S
  • 但是JS也分為異步任務(wù)(兩個定時器)與同步任務(wù)
  • JS在運行的時候, 會按照從上到下的順序執(zhí)行代碼, 但是會先把所有的同步任務(wù)先執(zhí)行, 等所有的同步任務(wù)執(zhí)行完畢, 在執(zhí)行異步任務(wù)
  • console.log(1); // 同步任務(wù) 1console.log(2); // 同步任務(wù) 2setTimeout(function () { // 異步任務(wù) 1console.log(3);}, 5000)console.log(4); // 同步任務(wù) 3

    console.log(1);console.log(2); ?setInterval(function () { ?console.log(3);}, 1000) ?console.log(4);

    4、面試題

    console.log('start'); setTimeout(function () { ?console.log('timeout_start') setTimeout(function () { ?console.log('QF666'); }, 0) ?console.log('timeout_end'); }, 0)console.log('end');

    總結(jié)

    以上是生活随笔為你收集整理的【学习笔记33】JavaScript延时器定时器和异步程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。