2 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
內(nèi)存不用太糾結(jié),不同的引擎實(shí)現(xiàn)有可能不同,重點(diǎn)是關(guān)心常用的數(shù)據(jù)結(jié)構(gòu)就好,JS 里最常用的無非也就是數(shù)組(功能兼容數(shù)組、列表、隊(duì)列、棧)和對(duì)象(功能兼容字符串鍵的Hash表)。
作用域鏈可以簡單的理解,哪寫的代碼就在其所在的 function 函數(shù)體有效(var
),而后來的 const
和 let
是塊級(jí)作用域,即在最近的 {}
內(nèi)有效,注意一下函數(shù)申請和變量申明提升的問題,關(guān)于這個(gè)可以參考 C# 或 Java,都差不多。
只要函數(shù)是一等公民的語言(即函數(shù)可以當(dāng)作引用來傳遞),基本上都存在閉包。閉包同樣遵循上面的原則,寫代碼的時(shí)候,它是在哪個(gè)作用域內(nèi),運(yùn)行的時(shí)候它就可以訪問哪個(gè)作用域內(nèi)的變量。只是在 this
這個(gè)問題上要麻煩一點(diǎn),可以參考:JavaScript 的 this 批向問題深度解析
添加回答
舉報(bào)