CommonJS:使用在服務器端JS模塊化,好比NodeJS。CommonJS 加載模塊是同步的,因此只有加載完成才能執行後面的操做。像Node.js主要用於服務器的編程,加載的模塊文件通常都已經存在本地硬盤,因此加載起來比 較快,不用考慮異步加載的方式,因此CommonJS規範比較適用。但若是是瀏覽器環境,要從服務器加載模塊,這是就必須採用異步模式。因此就有了 AMD CMD 解決方案。編程
AMD:使用在瀏覽器端JS模塊化,好比requireJS使用過程當中產出AMD規範,它的模塊支持對象 函數 構造器 字符串 JSON等各類類型的模塊。api
CMD:seaJS使用過程當中產出瀏覽器
1.對於依賴的模塊AMD是提早執行,CMD是延遲執行。不過RequireJS從2.0開始,也改爲能夠延遲執行(根據寫法不一樣,處理方式不經過)。服務器
2.CMD推崇依賴就近,AMD推崇依賴前置。異步
3.AMD的api默認是一個當多個用,CMD嚴格的區分推崇職責單一。例如:AMD裏require分全局的和局部的。CMD裏面沒有全局的 require,提供 seajs.use()來實現模塊系統的加載啓動。CMD裏每一個API都簡單純粹。模塊化