ES6,CommonJS 区别

本文最后更新于:2023年3月19日 晚上

本文转自:https://www.cnblogs.com/whm-blog/p/9750021.html

es6 {
   export   :      ‘可以输出多个,输出方式为 {}’ ,
   export  default : ‘ 只能输出一个 ,可以与 export 同时输出,但是不建议这么做’,
  解析阶段确定对外输出的接口,解析阶段生成接口,
  模块不是对象,加载的不是对象,
  可以单独加载其中的某个接口(方法),
  静态引入**,编译时引用,输出的是值的引用,值改变,引用也改变,即原来模块中的值改变则该加载的值也改变,
**只有 ES6 MODULE 才能静态分析,实现 Tree-shaking

   this 指向 undefined
}
commonJS {
   module.exports =  …   :      ‘只能输出一个,且后面的会覆盖上面的’ ,
   exports. …  : ‘ 可以输出多个’,
  运行阶段确定接口,运行时才会加载模块
动态引入,执行时引入
  模块是对象,加载的是该对象,
  加载的是整个模块,即将所有的接口全部加载进来,
  输出是值的*拷贝\*,即原来模块中的值改变不会影响已经加载的该值,
   this 指向当前模块
}


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!