CommonJs和Es Module

1. 为什么会有CommONjS和ES module呢?

  • js文佳作用域都是顶层,这会造成变量污染
  • js文件多,变得不好维护
  • js依赖问题,稍微不注意顺序引入错,代码全错
    为了解决以上问题JavaScript社区出现了CommonJs,commomJs是一种模块化规法,在后来的ES6版本正式加入了Es Module模块,这两种都解决了上面的问题。

2. CommonJs基本语法

  1. 使用module.export导出变量及函数,也可以省略关键字export,直接写export导出。
  2. commonJsrequire语法导入
  3. 支持动态导入,就是可以在语句中使用require语法。
  4. CommonJs导入的值是拷贝的,所以可以修改拷贝值,但这会引起变量污染,一不小心就会重名。

3. Es Module 基本语法

  1. Es Module中导出分为两种,单个导出export,默认导出export default
  2. 可以export和export default同时使用并且互不影响,如果文件里有混合导入,则必须先导入默认导出的,再导入单个导入的值
  3. Es Moduleimport语法进行导入。如果单个导入必须要用花括号{}
  4. 导出的值是值得引用,并且内部有映射关系,而且导入得值不能进行修改也就是只读状态。
  5. import只能声明在该文件的最顶部,不能动态加载导入语句

4. AMD和CMD区别

  1. AMD是提前执行,CMD是延迟执行
  2. AMD推崇依赖前置,CMD推崇依赖就近

猜你喜欢

转载自blog.csdn.net/weixin_54722719/article/details/123222685