說說你對前端模塊化的理解前端
能夠理解成實現特定功能的相互獨立的一組方法es6
CommonJS 擴展了JavaScript聲明模塊的API,web
經過CommonJS,每一個JS文件獨立地存儲它模塊的內容(就像一個被括起來的閉包同樣)。在這種做用域中,咱們經過 module.exports 語句來導出對象爲模塊,再經過 require 語句來引入安全
如:bash
function myModule() {
this.hello = function() {
return 'hello!';
}
}
module.exports = myModule;
複製代碼
特色: 提倡依賴前置,在定義模塊的時候就要聲明其依賴的模塊閉包
如:模塊化
require([module], callback);
複製代碼
CMD規範是國內SeaJS的推廣過程當中產生的
提倡就近依賴(按需加載),在用到某個模塊的時候再去requireweb安全
define(function (require, exports, module) {
var one = require('./one')
one.do()
// 就近依賴,按需加載
var two = require('./two')
two.do()
})
複製代碼
AMD和CommonJS的結合,跨平臺的解決方案,UMD先判斷是否支持Node.js的模塊(exports)是否存在,存在則使用Node.js模塊模式。在判斷是否支持AMD(define是否存在),存在則使用AMD方式加載模塊post
如:學習
(function (window, factory) {
if (typeof exports === 'object') {
module.exports = factory();
} else if (typeof define === 'function' && define.amd) {
define(factory);
} else {
window.eventUtil = factory();
}
})(this, function () {
//module ...
});
複製代碼
原生JS(es6)解決方案
如:
export default myModule
import myModule from './myModule'
複製代碼
JS每日一題能夠當作是一個語音答題社區
天天利用碎片時間採用60秒內的語音形式來完成當天的考題
羣主在第二天0點推送當天的參考答案