CommonJS模块的特点如下
CommonJS规范
CommonJS规范规定
每个模块内部,module变量都只代表当前的模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,也就是加载该模块的module.exports属性。require方法用于加载模块。
CommonJS模块的特点
所有的代码都只在模块作用域中运行,不会污染全局作用域。
模块可以多次加载,但是只会在第一次加载时运行一次,运行结果就会被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。
模块加载的顺序,按照其在代码中出现的顺序
AMD规范和commonJS规范
相同点
都是为了模块化。
不同点
AMD规范则是非同步加载模块,允许指定回调函数。CommonJS规范加载模块是同步的,换句话说,只有加载完成,才能执行后面的操作。