ESM:import, import(), export, export default
CommonJS: require(), module.exports
1. CommonJS输出的是值的拷贝,ES Module输出的是值的引用
2. CommonJS是运行时加载(module.exports),ES Module是编译时输出接口
3. CommonJS的require()是同步加载模块,ESModule的import是异步加载模块,静态编译时加载,有独立的模块依赖解析
4. CommonJS模块的顶层this指向当前模块,ES6模块中,顶层this指向undefined
ES Module:静态加载/编译时加载
CommonJS:运行加载
ESM效率要比 CommonJS 模块的加载方式高,动态绑定关系
import:静态执行,会提升,不可修改/只读
export default:指定模块的输出,输出一个叫做default的方法/变量,系统允许修改名称
import():动态加载模块,当需要按需加载时使用