JavaScript執行上下文棧javascript
順序執行?
-
若是要問到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引擎並不是一行一行的分析和執行程序,而是一段一段分析執行,當執行一段代碼的時候,會進行一個
準備工做,好比第一個例子中的變量提高,和第二個例子的函數提高。
可執行代碼
-
JavaScript可執行代碼的類型有:全局代碼,函數代碼,eval代碼
舉個例子,當執行到一個函數時,就會進行一些準備工做,這裏的
準備工做,就叫作
執行上下文棧