前端小白也能懂:ES模块和CommonJS的那些事
warning:
这篇文章距离上次修改已过186天,其中的内容可能已经有所变动。
ES模块(ES6模块)和CommonJS模块是JavaScript中用于管理模块化代码的两种主要规范。
- CommonJS模块:
- 同步加载模块,执行时阻塞I/O;
- 每个模块有自己的作用域,模块内部定义的变量、函数或类都是私有的;
- 使用
require
方法导入模块,使用module.exports
导出模块。
例子:
// math.js
module.exports = {
add(a, b) {
return a + b;
}
};
// 使用math.js
const math = require('./math.js');
console.log(math.add(1, 2)); // 输出: 3
- ES模块(ES6模块):
- 异步加载模块,不阻塞I/O;
- 使用
import
语句导入模块,使用export
语句导出模块; - 模块是静态的,不能在运行时改变。
例子:
// math.js
export function add(a, b) {
return a + b;
}
// 使用math.js
import { add } from './math.js';
console.log(add(1, 2)); // 输出: 3
在现代前端开发中,通常推荐使用ES模块,因为它们提供了更好的代码隔离和更好的性能。
评论已关闭