鍍金池/ 問答/Python  網(wǎng)絡(luò)安全  HTML/ JS的作用域鏈,內(nèi)存空間,閉包等等可以參考什么語言來理解?

JS的作用域鏈,內(nèi)存空間,閉包等等可以參考什么語言來理解?

JS的一些高級特性,比如作用域鏈,內(nèi)存空間,閉包等等可以參考什么語言來理解?

因為我了解JS的原型繼承在設(shè)計的時候有參考IO這門語言,IO是一門,個人覺得是比JS好理解好多的語言,因為它太簡單了。我參考著IO來理解JS原型繼承,原型鏈對象方面的內(nèi)容的話,發(fā)現(xiàn)理解的更好,更深刻。雖然JS的其他特性網(wǎng)上有很多的文章來解答,但是發(fā)現(xiàn)總是有點深奧,所以希望有人可以推薦下和它類似的語言,但是比較好理解的,然后我去參考著理解。

之前在簡書上看到一個系列講解js的文章,說的非常詳細(xì),但是發(fā)現(xiàn)他講的內(nèi)存空間等等內(nèi)容我還是不能很好的理解,自己的水平有限,求推薦?

回答
編輯回答
背叛者

javascript本身就是綜合了c /java等語言的設(shè)計方式進行改良的,內(nèi)存空間的理解建議你要對瀏覽器工作機制進行深入理解,原型鏈個人覺得理解與比例解就在一念之間,相對來說在JS的學(xué)習(xí)中算是中等難度的。閉包只是個抽象的詞,從另一面就是來說明作用域的。對于原型鏈的了解建議去看JQzepto這些框架源碼,如果要了解作用域空間等,紅寶書是必修課,后續(xù)在讀犀牛書,兩本葵花寶典,讀完至少一兩年。。。哈哈哈哈------

2017年1月13日 06:06
編輯回答
逗婦惱

內(nèi)存不用太糾結(jié),不同的引擎實現(xiàn)有可能不同,重點是關(guān)心常用的數(shù)據(jù)結(jié)構(gòu)就好,JS 里最常用的無非也就是數(shù)組(功能兼容數(shù)組、列表、隊列、棧)和對象(功能兼容字符串鍵的Hash表)。

作用域鏈可以簡單的理解,哪寫的代碼就在其所在的 function 函數(shù)體有效(var),而后來的 constlet 是塊級作用域,即在最近的 {} 內(nèi)有效,注意一下函數(shù)申請和變量申明提升的問題,關(guān)于這個可以參考 C# 或 Java,都差不多。

只要函數(shù)是一等公民的語言(即函數(shù)可以當(dāng)作引用來傳遞),基本上都存在閉包。閉包同樣遵循上面的原則,寫代碼的時候,它是在哪個作用域內(nèi),運行的時候它就可以訪問哪個作用域內(nèi)的變量。只是在 this 這個問題上要麻煩一點,可以參考:JavaScript 的 this 批向問題深度解析

2018年1月14日 20:37
編輯回答
賤人曾

我是個愛鉆牛角尖的人,為了理解閉包,翻看了很多書,大多都只涉及表象,深入些的談到 first-class function 和語法作用域即止。直到開始看《編譯原理》,才發(fā)現(xiàn)閉包后面是一大塊知識,正是缺乏編譯原理的知識,我才無法完全理解閉包。所以,我現(xiàn)在覺得要深入理解語言的某些特性,如作用域、垃圾回收等,找該領(lǐng)域的經(jīng)典書籍看一看是個不錯的選擇。

2017年4月13日 04:59
編輯回答
司令

理解JavaScript,可以參考函數(shù)式語言來理解,比如lisp,heckshell,scala。

2018年8月22日 15:43