1、CommonJS前端
CommonJS就是爲js的表現指定的規範,nodeJS是這一規範的其中一種實現。由於js沒有模塊的功能因此CommonJS應運而生,它但願js能夠在任何地方運行,不僅是瀏覽器。node
node,commonJS,瀏覽器以及W3C之間有什麼關係:jquery
CommonJS定義的模塊分爲:後端
require()用來引入外部模塊;exports對象用於導出當前模塊的方法或變量,惟一的導出口;module對象就表明模塊自己。瀏覽器
2、AMD服務器
CommonJS是主要爲了js在後端的表現指定的,他是不適合前端的,爲何這麼說呢?由於服務器端js的執行大多依賴服務器系統的本地資源(如:CPU、內存、磁盤),而瀏覽器端js大部分依賴於網絡。因而,AMD(異步模塊定義)出現了,它主要就是爲前端js的表現指定規範。網絡
AMD就只有一個接口:define異步
RequireJS就是這一規範的實現,如下是requireJS定義模塊的代碼:ui
define(['jquery', 'otherModule'], function($, otherModule) { var $select = $('#select'); });
若是沒有什麼依賴,下面這樣寫也能夠:spa
define(function() { console.log('hello world'); });
3、CMD
大牛玉伯寫的seaJS就是遵循CMD規範的實現,與AMD不一樣的是,他採用的是按需加載模塊的思想,這在移動端用的比較多,由於它比AMD加載方式更節約流量。