Functions(函式)跟Classes(類),感覺是兩個不同的東西,但是他們的Declarations(宣告)卻是相當相似的,先宣告他們的類別(function/class),之後才繼續敘述他們的名稱與內容,並可以在其他地方無限次的呼叫,或許是這個原因ECMA才把他們分在同類
名稱是Functions,是Object type的其中一種,但是概念從Subroutine這邊去理解,他是程式碼最小的操作與執行單位,大型的程式碼都是由眾多的小Functions所組合而成;而一個Function是由一個或是多個Statements組合而成,當Function被呼叫的時候,會將內部Statements依序執行。
補充:拆分即是把Functions簡化,可以方便閱讀,並可以大量重複運用
這是ES6引入的的新概念,像是一個比較特別Functions函式,作為建立新物件的模板,並透過new +class的名稱透過建立好的class來建立新物件。
Modules(模組)的理念跟Classes(類)比較類似,讓程式碼模組化,可以讓程式碼在各種狀況下都能被使用,程式碼的拆分概念的延伸。
透過export將js檔案輸出給其他地方使用,
透過import將其他js檔案引入至需要他的地方使用。
經過前面我們知道,Source Text是我們編撰code使用的文字與符號,
Lexical Grammar是Source Text轉成Unicode編碼時使用的規範,以利計算機去解讀,
Statements、Declarations及Expressions,這三個是我們使用Source Text的文字所組成的句子
Functions、Classes及Modules,將程式碼製成模組,並透過呼叫重複使用,
那個Scripts(命令稿/指令搞)是什麼呢?
Scripts(命令稿/指令搞)即是我們撰寫出的程式碼整體,一個JS檔的全部內容即是一個Scripts(命令稿/指令搞),如果說我們寫的所有Statements是文字,那Scripts(命令稿/指令搞)就是一張稿紙,乘載了我們撰寫的所有內容,並交給計算機一步一步去執行。
ECMAScript Language結束啦!經過這裡總覺得我好像理解JavaScript是怎麼運作的,但是也才是挑戰的開始,這邊只是概述,裡面的各種分類都還有相當龐大內容等著我們去挖掘,接下來跟鯊魚一起深入理解吧!
參考資料
MDN-classes
wiki-Subroutine
EMCA262
JavaScript 命令稿
JavaScript大全-第七版