模块化主要是用来抽离公共代码,提高代码复用率,隔离作用域,避免变量冲突等。通常一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数。目前流行的模块化规范有AMD、CMD、CommonJS以及ES6的模块系统。模块化的开发方式可以方便进行代码的管理。
AMD
(异步模块定义规范) : RequireJS 异步加载,依赖前置,提前执行,特点:依赖必须提前声明好。
CMD
(通用模块定义规范) : SeaJS 同步加载,依赖就近,延迟执行使用seaJS 来编写模块化,特点:支持动态引入依赖文件。
CommonJS
nodejs 中自带的模块化。CommonJS主要用于服务器端,NodeJS采用的就是CommonJS,每个文件会被当做一个模块,使用exports和require关键字进行导出和加载,但由于其是同步加载,故不适用于客户端;
ES Modules
ES6 引入的模块化,支持import 来引入另一个 js 。
— The end —