在JavaScript中,模块是一种将功能代码组织成逻辑单元的方式,以便在其他项目中重复使用。有两种主要的模块系统:CommonJS和ES6。
1、CommonJS
在CommonJS中,我们使用require来引入模块,使用module.exports来导出模块。
下面是一个简单的例子:
// math.js
exports.add = function (a, b) {return a + b;
};
然后,在另一个文件中,我们可以使用require来引入这个模块:
// app.js
var math = require('./math');
console.log(math.add(1, 2)); // 输出 3
2、ES6模块
ES6引入了新的模块系统,它支持导入和导出模块。下面是ES6模块的一个例子:
// math.js
export function add(a, b) {return a + b;
};
然后,在另一个文件中,我们可以使用import来引入这个模块:
// app.js
import { add } from './math';
console.log(add(1, 2)); // 输出 3
总的来说,CommonJS和ES6模块的主要区别在于语法、加载方式和只读性。CommonJS是运行时加载,ES6是编译时加载;CommonJS模块输出的是值的拷贝,ES6模块输出的是值的引用;此外,CommonJS模块是可读写的,而ES6模块是只读的