+
72
-

js版本iife esm umd cjs有啥区别?

js版本iife esm umd cjs有啥区别?


网友回复

+
17
-

JavaScript 的四种常见模块格式(IIFE、ESM、UMD、CJS)主要区别在于使用场景、语法和兼容性。以下是简明对比:

1. IIFE(Immediately Invoked Function Expression)

本质:不是模块系统,而是一种立即执行函数的写法。

特点

用 (function(){...})() 包裹代码,避免污染全局作用域。

无模块导入/导出能力

用途:早期浏览器端“伪模块”,现已基本被替代。

示例

(function() {
  var name = 'IIFE';
  window.myLib = { name };
})();

2. CJS(CommonJS)

环境:Node.js 原生支持(不支持浏览器直接运行)。

语法

导出:module.exports = ... 或 exports.xxx = ...

导入:const mod = require('mod')

特点

同步加载,适合服务器端。

每个文件是一个模块。

示例

// ma...

点击查看剩余70%

我知道答案,我要回答