js 執行順序

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

預編譯期:對本代碼塊(兩個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的回調函數並非在執行完異步後立馬執行回調線程

相關文章
相關標籤/搜索