1.什麼是回調函數?ajax
-- 簡單點說,一個函數被做爲參數傳遞給另外一個函數(在這裏咱們把另外一個函數叫作「otherFunction」),回調函數在otherFunction中被調用。函數
--能夠是匿名函數也能夠是命名函數spa
2.回調函數的特色3d
(1)本身定義的函數blog
(2)你沒有調用生命週期
(3)最終它執行了隊列
3.常見的回調函數事件
(1)DOM事件回調函數ip
(2)定時器回調函數回調函數
(3)ajax請求回調函數
略。(後續相應內容補充)
(4)生命週期回調函數
略。(後續相應內容補充)
4.拓展
--代碼分類
(1)初始化代碼:通常的代碼,包括設置定時器,綁定監聽,發送ajax請求……
(2)回調代碼:回調函數的代碼
JavaScript引擎,在執行代碼時,先執行初始化代碼,等到初始化代碼所有執行結束時,再執行回調代碼。
執行結果:
重上述案例中,咱們能夠 看到回調函數無論在整個代碼的什麼位置,它都要比初始化代碼執行完後纔會執行。
上述代碼執行流程:前兩代碼打開了定時器,此時JavaScript引擎將回調函數,和設置的時間交給定時器管理模塊(事件管理模塊),待到事件觸發時,回調函數加入到回調隊列中(callback queue),此時處於待處理狀態。若是初始化代碼所有執行結束,纔會循環遍歷回調隊列中的回調函數。在上述代碼中先加入隊列的是延時時間爲0ms的定時器,而後纔是2000ms的定時器,因爲隊列的特性是先進先出,因此兩個定時器間,先執行第二個定時器,在執行第一個定時器。
(此處涉及到時間循環模型,後續內容會補充,這裏咱們只須要大體瞭解回調函數是何時執行的)