首先,請看圖 javascript
那麼當運行一個js函數時v8引擎是如何進行工做的呢?java
v8引擎由兩個主要模塊組成:內存堆/調用堆棧node
內存堆用於分配內存地址 調用堆棧用於執行代碼編程
調用棧是一個盒子,當執行一個函數時,它會將函數放置到棧頂!函數返回時則彈出 瀏覽器
咱們都知道javascript是單線程編程語言,這意味着它只有一個調用堆棧編程語言
當執行如下代碼時函數
這個時候調用堆棧怎麼了?ui
當調用堆棧中有一個函數須要花費大量時間處理時,瀏覽器或node不能作任何事情,由於它被阻塞了 瀏覽器通常會詢問你是否想關掉頁面或者等待函數執行完成, 咱們能夠在不阻塞ui和不使瀏覽器失去響應的狀況下執行大量代碼嗎?線程
你猜cdn