99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

(9)——簡述【執(zhí)行上下文】下

2018-02-24 15:45 更新

繼續(xù)上一篇文章(http://www.cnblogs.com/wangfupeng1988/p/3986420.html)的內容

上一篇我們講到在全局環(huán)境下的代碼段中,執(zhí)行上下文環(huán)境中有如何數(shù)據(jù):

  • 變量、函數(shù)表達式——變量聲明,默認賦值為undefined;
  • this——賦值;
  • 函數(shù)聲明——賦值;

如果在函數(shù)中,除了以上數(shù)據(jù)之外,還會有其他數(shù)據(jù)。先看以下代碼:

以上代碼展示了在函數(shù)體的語句執(zhí)行之前,arguments變量和函數(shù)的參數(shù)都已經被賦值。從這里可以看出,函數(shù)每被調用一次,都會產生一個新的執(zhí)行上下文環(huán)境。因為不同的調用可能就會有不同的參數(shù)。

另外一點不同在于,函數(shù)在定義的時候(不是調用的時候),就已經確定了函數(shù)體內部自由變量的作用域。至于“自由變量”和“作用域”是后面要專門拿出來講述的重點,這里就先點到為止。用一個例子說明一下:

好了,總結完了函數(shù)的附加內容,我們就此要全面總結一下上下文環(huán)境的數(shù)據(jù)內容。

全局代碼的上下文環(huán)境數(shù)據(jù)內容為:

普通變量(包括函數(shù)表達式),如: var a = 10; 聲明(默認賦值為undefined)
函數(shù)聲明,如: function fn() { } 賦值
this 賦值
如果代碼段是函數(shù)體,那么在此基礎上需要附加:
參數(shù) 賦值
arguments 賦值
自由變量的取值作用域 賦值

給執(zhí)行上下文環(huán)境下一個通俗的定義——在執(zhí)行代碼之前,把將要用到的所有的變量都事先拿出來,有的直接賦值了,有的先用undefined占個空。

了解了執(zhí)行上下文環(huán)境中的數(shù)據(jù)信息,你就不用再去死記硬背那些可惡的面試題了。理解了就不用背誦!

講完了上下文環(huán)境,又來了新的問題——在執(zhí)行js代碼時,會有數(shù)不清的函數(shù)調用次數(shù),會產生許多個上下文環(huán)境。這么多上下文環(huán)境該如何管理,以及如何銷毀而釋放內存呢?下一節(jié)將通過“執(zhí)行上下文?!眮斫忉屵@個問題。

不過別著急,在解釋“執(zhí)行上下文棧”之前,還需要把this說一下,this還是挺重要的。

說完this,接著說執(zhí)行上下文棧。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號