【Udemy付費課程】JavaScript: The Advanced Conc

V8引擎就是構(gòu)建 js語言 和 計算機硬件之前交互溝通的橋梁 (能夠讓計算機(CPU)知道你編寫的JS程序需要硬件去做個什么樣的事情).
ECMAScript = 管理機構(gòu) 促進標(biāo)準(zhǔn)化工作的
解釋器可以將代碼翻譯成匯編語言 字節(jié)碼 引擎和虛擬機能夠識別),直接啟動運行速度快
編譯器可以將代碼翻譯成機器語言(硬件直接可以識別的指令)需要將代碼重新編譯成一門新的語言 可以對檢查 以及代碼優(yōu)化 (缺點編譯過程需要時間。
JIT 編譯器 將二者優(yōu)點直接整合,提高js代碼的運行效率。

隱藏類的優(yōu)化
// 解決方案就是避免JavaScript的“先創(chuàng)建再補充”式的動態(tài)屬性賦值
// 動態(tài)刪除和動態(tài)新增屬性都會導(dǎo)致隱藏類不會共享 建議顯示的將屬性值賦值為null 可達(dá)到對象的引用觸發(fā)垃圾回收的效果
callStack
方法的調(diào)用伴隨著函數(shù)入棧和出棧的過程
stackover Recursion (注意函數(shù)返回的出口)
內(nèi)存泄漏
過去使用但是未來不需要用但是沒有回收的空間 一直被占用 導(dǎo)致這塊內(nèi)存不能夠得到利用 而出現(xiàn)內(nèi)存泄漏
熟悉事件循環(huán)機制 了解同步任務(wù)和異步任務(wù)
js代碼執(zhí)行流程
1 創(chuàng)建一個全局執(zhí)行上下文 (聲明全局的變量 +this的指向)
1 初始化全局變量
2 變量提升
2 創(chuàng)建對應(yīng)函數(shù)的執(zhí)行上下文(棧幀) 入棧的操作
標(biāo)簽: