详情请看这篇文章 https://blog.csdn.net/weixin_43514149/article/details/107425932
简单来说就是2句话
commonjs模块输出的是一个值的拷贝,es6模块化输出的是值的引用
CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。
commonjs是同步的,主要用于服务端,而es6模块是异步的
当commonjs运行时,就 require了这个对象,且只加载一次,往后取到的值都是第一次运行时的值。
个人认为这篇文章对“CommonJS 模块是运行时加载,ES6 模块是编译时输出接口”这句话解释的很到位,所以转载一下。