定時器 同步 異步 回調函數

設置定時器 當時間到了 瀏覽器執行定時器的回調函數 掛載在window上方法

  1. window.setTimeout(callback,timeInterval) 時間到 執行一次 也稱超時調用 callback 執行的回調函數 timeInterval 時間間隔
  2. window.setInterval(callback,timeInterval) 每隔一段時間 執行一次 也稱間歇調用
  • 以上兩種方法都會返回一個定時器ID
  1. 清除定時器 clearTimeout clearInterval 清除指定的定時器 清除後 這個定時器無論有沒有執行過 都會中止執行

同步執行

執行任務 按照必定的次序執行 當這個事件沒有執行結束後 不會執行下一個事件瀏覽器

異步執行

當事件執行的時機不固定時 瀏覽器會先執行後面的任務 當後面的事件執行完後 再返回來執行當前事件異步

  • JS常見異步執行
    • 事件函數都是異步執行
    • 定時器的回調函數也是異步執行
    • Ajax中的異步
    • 回調函數也是異步執行

瀏覽器如何實現異步機制

瀏覽器中有兩個任務隊列函數

  • 主線任務 存放當前須要同步執行的同步任務
  • 等待任務 不須要馬上執行的異步任務都放到等待任務隊列中
  • 當主任務隊列中的任務執行結束後,就去執行等待任務隊列中的任務 必須等主線任務執行完成後 再執行等待隊列的任務
  • 死循環就至關於主任務隊列沒有執行完

回調函數

函數A當作實參傳遞給函數B 在函數B執行時 須要A的地方時 把A執行 這種機制稱爲回調函數機制this

  1. 特色
  • 回調函數能夠執行屢次
  • 能夠傳遞實參
  • 能夠改變回調函數中this的指向
  • 能夠在宿主函數中 接收回調函數執行的返回結果
  1. 常見內置的回調函數
  • 定時器
  • sort方法
  • forEach方法
  • map方法
相關文章
相關標籤/搜索