知識點1:AMD/CMD/CommonJs是JS模塊化開發的標準,目前對應的實現是RequireJs/SeaJs/nodeJs.node
知識點2:CommonJs主要針對服務端,AMD/CMD主要針對瀏覽器端,因此最容易混淆的是AMD/CMD。(順便提一下,針對服務器端和針對瀏覽器端有什麼本質的區別呢?服務器端通常採用同步加載文件,也就是說須要某個模塊,服務器端便停下來,等待它加載再執行。而瀏覽器端要保證效率,須要採用異步加載,這就須要一個預處理,提早將所須要的模塊文件並行加載好。)瀏覽器
知識點3 : AMD/CMD區別,雖然都是並行加載js文件,但仍是有所區別,AMD是預加載,在並行加載js文件同時,還會解析執行該模塊(由於還須要執行,因此在加載某個模塊前,這個模塊的依賴模塊須要先加載完成);而CMD是懶加載,雖然會一開始就並行加載js文件,可是不會執行,而是在須要的時候才執行。服務器
知識點4:AMD/CMD的優缺點.一個的優勢就是另外一個的缺點, 能夠對照瀏覽。
AMD優勢:加載快速,尤爲遇到多個大文件,由於並行解析,因此同一時間能夠解析多個文件。
AMD缺點:並行加載,異步處理,加載順序不必定,可能會形成一些困擾,甚至爲程序埋下大坑。
CMD優勢:由於只有在使用的時候纔會解析執行js文件,所以,每一個JS文件的執行順序在代碼中是有體現的,是可控的。
CMD缺點:執行等待時間會疊加。由於每一個文件執行時是同步執行(串行執行),所以時間是全部文件解析執行時間之和,尤爲在文件較多較大時,這種缺點尤其明顯。異步
知識點5:如何使用?CommonJs的話,由於nodeJs就是它的實現,因此使用node就行,也不用引入其餘包。AMD則是經過<script>標籤引入RequireJs。CMD則是引入SeaJs。
模塊化