JavaScript執行上下文棧

JavaScript執行上下文棧javascript

順序執行?
  1. 若是要問到JavaScript代碼執行順序的話,想必寫過JavaScript的開發者都會有個直觀的印象,那就是順序執行。
var foo = function(){
    console.log (1)
}
foo()// 1

var foo = function(){ 
    console.log (2)
}
foo()// 2

然而去看這段代碼java

function foo(){
  console.log (1)
}
foo()// 2

function foo(){
  console.log (2)
}
foo()// 2

打印結果是兩個2函數

這是由於JavaScript引擎並不是一行一行的分析和執行程序,而是一段一段分析執行,當執行一段代碼的時候,會進行一個 準備工做,好比第一個例子中的變量提高,和第二個例子的函數提高。
 
可執行代碼
  1. JavaScript可執行代碼的類型有:全局代碼,函數代碼,eval代碼
舉個例子,當執行到一個函數時,就會進行一些準備工做,這裏的 準備工做,就叫作 執行上下文棧
相關文章
相關標籤/搜索