本篇系列文為《You Don't Know JS》的讀書筆記,並搭配其他補充資料,寫下自己對這門語言的理解。
作為前端工程師,JavaScript 的各種實作細節是無法避開的課題,在一次次閱讀各種文件和文章,加上工作中累積的實作經驗,也算是對 JavaScript 建立起了相關的知識體系。於是就想藉著這次讀書筆記的機會,來和大家分享我所知道的 JavaScript。
所以說......就是要搞懂 JavaScript 啦!之前搞不懂的、一知半解的、模模糊糊的,這一次通通給他弄懂!
踏入程式一行轉眼 3 年了,自覺差不多結束了 Junior 的萌新狀態,目前繼續在成為名副其實的 Senior 道路上努力。 到目前為止的積累究竟有多少呢?我不...
JavaScript 其中一大謎團,就是關於它到底屬於直譯式還是編譯式語言。 那麼首先,就來簡單定義一下這兩者: 直譯式語言(Interpreted langu...
前面已經說到,JS 是一種採用即時編譯(JIT)的語言,雖然過程十分短暫迅速,依然經歷了編譯這個環節。 這裡就來稍微快速理解一下,編譯時具體都做了些什麼。 編譯...
宿主環境 上一篇提到 JS 的執行方式,這裡就順勢來說說,JS 執行時需要依賴的宿主環境(host environment)。 系統級的語言,例如 C 語言可以...
變數(Variables) 在執行程式時,我們需要紀錄某些狀態的改變,例如某扇門開著或關著,某項物品當前有多少庫存等。 為了因應其狀態的改變,程式中定義了能被賦...
變數查詢 關於變數的使用,這裡讓我們再探討得深入一些。 當程式執行時,對變數的操作分為以下兩種: LHS (Left Hand Side) RHS (Righ...
介紹完變數後,來看看變數所處的環境。 用最簡單的方式來說,所謂的作用域可以理解為「變數能夠存活的區塊泡泡」。每個變數只屬於一個作用域,一個作用域內則可以存在多個...
「詞法作用域(Lexical Scope)」是指編譯器在詞法分析/語意分析時所定義的範疇,除非在執行時期用特殊方法改動(如 JS 的 with 或 eval()...
函式作用域(Function Scope) JS 的每個函式都擁有自己的作用域,可以說,當你宣告了一個函式,同時就創建了一個新的作用域。 函式作用域的規則如下:...
區塊作用域(Block Scope) 在 JS 最早的版本中,只有函式能夠創造自己的作用域。 接著 ES3 新增了 try/catch ,其中的 catch 擁...