看了《你不知道的JavaScript(上卷)》的第一部分——作用域和閉包,感受頗深,遂寫(xiě)一篇讀書(shū)筆記加深印象。路過(guò)的大牛歡迎指點(diǎn),對(duì)這方面不懂的同學(xué)請(qǐng)繞道看書(shū),以免誤人子弟... 看過(guò)這本書(shū)的可以一起交流交流。

編譯過(guò)程

理解js作用域首先要了解js的編譯過(guò)程(或者說(shuō)解析過(guò)程)。

  1. 引擎
    從頭到尾負(fù)責(zé)整個(gè) JavaScript 程序的編譯及執(zhí)行過(guò)程。

  2. 編譯器
    引擎的好朋友之一,負(fù)責(zé)語(yǔ)法分析及代碼生成等臟活累活(詳見(jiàn)前一節(jié)的內(nèi)容)。

  3. 作用域
    引擎的另一位好朋友,負(fù)責(zé)收集并維護(hù)由所有聲明的標(biāo)識(shí)符(變量)組成的一系列查詢,并實(shí)施一套非常嚴(yán)格的規(guī)則,確定當(dāng)前執(zhí)行的代碼對(duì)這些標(biāo)識(shí)符的訪問(wèn)權(quán)限。

都說(shuō)node是基于chrome的V8引擎開(kāi)發(fā) 的。那么V8是引擎,node是編譯器嗎?這個(gè)理解是錯(cuò)誤的!我之前就是這么錯(cuò)誤理解的,聽(tīng)說(shuō)node是用C++實(shí)現(xiàn)的,之前我一直以為V8是負(fù)責(zé)把javascript語(yǔ)言轉(zhuǎn)換成底層的C++,然后node很高級(jí)node負(fù)責(zé)編譯,做js的語(yǔ)法檢察,ES6的新特性全都是node的開(kāi)發(fā)人員,一點(diǎn)點(diǎn)的開(kāi)發(fā)支持起來(lái)的。然而現(xiàn)實(shí)是,

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式