不同点: this指向不同 ESM指向undefinedCommonJS指向当前module的默认exports; __filename,__dirname 在 CommonJS 中存在,在 ESM 中不存在ESM和CommonJS都有缓存;模块加载一次后会缓存起来,后续再次加载会用缓存里的模块。 参考文档: 阮一峰:ES6 模块与 CommonJS 模块的差异