前端百題斬【009】——函數執行過程

寫該系列文章的初衷是「讓每位前端工程師掌握高頻知識點,爲工做助力」。這是前端百題斬的第9斬,但願朋友們關注公衆號「執鳶者」,用知識武裝本身的頭腦。前端

前端百題斬【8】中闡述了JavaScript代碼的執行過程,可是並無具體闡述一個函數的執行過程,對於函數執行過程以下所示:(注意:具體的內容本文將不會展開,只會全面講述一下)
img瀏覽器

  1. 肯定執行環境
當JavaScript執行全局代碼的時候,會建立全局執行執行上下文(整個頁面的生存週期內,全局執行上下文只有一份);在調用一個函數的時候會建立該函數的執行上下文(執行環境)。將多個執行上下文管理起來的就是調用棧(調用棧就是用來管理函數調用關係的一種數據結構)
  1. 建立階段
函數執行前會完成一些初始化操做,這就是建立階段,該階段主要進行生成變量對象、創建做用域鏈、肯定this指向,爲後續執行階段作準備。
  1. 執行階段
一切準備工做作好以後即進行代碼執行階段,該階段將完成變量賦值、函數引用及執行其它代碼。
  1. 垃圾回收
當函數執行完畢以後,會從調用棧中淡出、銷燬、等待瀏覽器的垃圾回收。

1.若是以爲這篇文章還不錯,來個分享、點贊吧,讓更多的人也看到前端工程師

2.關注公衆號執鳶者,與號主一塊兒斬殺前端百題。數據結構

相關文章
相關標籤/搜索