1. 程式人生 > >js 執行順序

js 執行順序

func fun 所有 代碼執行 代碼塊 預處理 默認 執行順序 var

js分為預編譯期(預處理)、執行期

預編譯期:對本代碼塊(兩個script塊互不影響)中的所有var聲明的變量和函數進行處理,但此處處理函數的只是聲明式函數(function aa(){}),初始內容就是函數體的內容(這就是“提升”),而變量也只是聲明,並未初始化和賦值

aa(); //1,函數aa在預編譯期會提升到最頂部
function aa(){
console.log("1");
}
預編譯期,解析為:
var aa = function(){
console.log("1");
}
aa();
執行期:js是單線程,代碼會按照代碼塊的順序在從上向下逐行執行
var i = "xx";
編譯期:
(1)聲明式函數會被提取出來(function aa(){})
(2)變量的聲明(var i = undefined,變量默認是undefined)
執行期:
(1)變量的賦值(i="xx")

ajax異步操作,當操作完成後,會把回調函數放到執行棧中,當前面的代碼執行完後,才會執行ajax的回調函數,所以ajax的回調函數並不是在執行完異步後立馬執行回調

js 執行順序