一、CommonJS(NodeJS)
命令:module、exports、require、global
特点:commonJS用同步的方式加载模块
二、AMD(RequireJS)
命令:define()定义模块,用require()加载模块
特点:异步加载模块
三、CMD(Sea.js)
命令:define()定义模块,用require()加载模块
特点;CMD是另一种js模块化方案,它与AMD很类似,不同点在于:AMD 推崇依赖前置、提前执行,CMD推崇依赖就近、延迟执行
四、ES6
命令:export(export default) import
特点:静态加载模块
语法特点:
1、export 和 export default 模块引入方式不一样
2、export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值
五、ES6与CommonJS 差异
1、运行时加载: CommonJS 模块就是对象;即在输入时是先加载整个模块,生成一个对象,然后再从这个对象上面读取方法,这种加载称为“运行时加载”
2、编译时加载: ES6 模块不是对象,而是通过 export 命令显式指定输出的代码,import时采用静态命令的形式。即在import时可以指定加载某个输出值,而不是加载整个模块,这种加载称为“编译时加载”。
网友评论