AMD CMD commonJS es6

看到不少人傻傻的分不清楚 AMD、CMD 、 commonJS 、 es6的區別,實際上這跟這幾年前段技術的發展有很大的關係。javascript

實際上這是JavaScript的模塊化思想演進的一個過程。html

最開始的時候咱們都是在 首頁 index.html 中,經過N多個<script>標籤來引入各個js文件(每一個js 文件就是一個單獨的模塊)。這其中咱們的加載前後的順序很是的受限制。須要根據依賴的前後進行依次加載。java

AMD首先它是一個規範  全稱是Asynchronous Module Definition,即異步模塊加載機制。AMD很短也很簡單,但它卻完整描述了模塊的定義,依賴關係,引用關係以及加載機制。從它被requireJS,NodeJs,Dojo,JQuery使用也能夠看出它具備很大的價值。AMD規範簡單到只有一個API,即define函數:es6

define([module-name?], [array-of-dependencies?], [module-factory-or-object]);
   module-name: 模塊標識,能夠省略。
   array-of-dependencies: 所依賴的模塊,能夠省略。
   module-factory-or-object: 模塊的實現,或者一個JavaScript對象。

 經常使用的require.js就是這個的規範實現。服務器

CMD 是 SeaJS 在推廣過程當中對模塊定義的規範化產出。seaJs是國內著名工程師玉伯提出來的,它既遵循了amd規範,又遵循commonJs規範,因此稱之爲cmd規範。

異步

CommonJS規範是誕生比較早的。NodeJS就採用了CommonJS,這種寫法適合服務端,由於在服務器讀取模塊都是在本地磁盤,加載速度很快。可是若是在客戶端,加載模塊的時候有可能出現「假死」情況,由於它是同步加載所要依賴的其餘模塊。模塊化

es6 的意思是javascript 本事實現了 模塊化的  不用再引入第三方庫(如:require.js  sea.js)函數

相關文章
相關標籤/搜索