由require&import区分开始学习CommonJS规范——node.js学习day1

require&import区分?
CommonJS中,我们用module.exports和require来导出和导入模块,而到了ES6却变成了export和import了,这两者到底有什么区别呢?
  一句话总结:CommonJS模块是运行输出(加载)一个值(或对象)的拷贝,而ES6模块则是编译时输出(加载)一个值的引用(或者叫做连接).
  这样的差异在平常使用是不易被察觉的,可是一旦出现循环引用,两者的差异就很明显了。直接的循环引用(a引用b,b又引用a)一般不会有,但在依赖关系复杂的大项目中,很容易出现a引用b,b引用其它模块,在若干次引用后,模块n又引用回a这样的情况。为了讲解的方便我们直接构造出一个a,b相互引用的项目。
require OR importrequire OR import

NodeJS和CommonJS之间的关系?
CommonJS是一种规范,NodeJS是这种规范的实现。
CommonJS规范

为什么模块规范的设计会有不同区别
模块规范发展历史

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容