js版本iife esm umd cjs有啥区别?
网友回复
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%


