js文佳作用域都是顶层,这会造成变量污染js文件多,变得不好维护js依赖问题,稍微不注意顺序引入错,代码全错
为了解决以上问题Javascript社区出现了CommonJs,commomJs是一种模块化规法,在后来的ES6版本正式加入了Es Module模块,这两种都解决了上面的问题。
2. CommonJs基本语法
- 使用module.export导出变量及函数,也可以省略关键字export,直接写export导出。commonJsrequire语法导入支持动态导入,就是可以在语句中使用require语法。CommonJs导入的值是拷贝的,所以可以修改拷贝值,但这会引起变量污染,一不小心就会重名。
- Es Module中导出分为两种,单个导出export,默认导出export default可以export和export default同时使用并且互不影响,如果文件里有混合导入,则必须先导入默认导出的,再导入单个导入的值Es Moduleimport语法进行导入。如果单个导入必须要用花括号{}导出的值是值得引用,并且内部有映射关系,而且导入得值不能进行修改也就是只读状态。import只能声明在该文件的最顶部,不能动态加载导入语句
- AMD是提前执行,CMD是延迟执行AMD推崇依赖前置,CMD推崇依赖就近



