ES6模块与CommonJS模块的不同之处

2022-05-121064次阅读javascript原生Js

它们有三个重大差异。

  • CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。
  • CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。
  • CommonJS 模块的require()是同步加载模块,ES6 模块的import命令是异步加载,有一个独立的模块依赖的解析阶段。

第二个差异是因为 CommonJS 加载的是一个对象(即module.exports属性),该对象只有在脚本运行完才会生成。而 ES6 模块不是对象,它的对外接口只是一种静态定义,在代码静态解析阶段就会生成。

上一篇: 向我解释Twitter 源代码的前10行  下一篇: setTimeout中delay赋值3e3的含义介绍  

ES6模块与CommonJS模块的不同之处相关文章