JavaScript CommonJS 模块
时间: 2023-03-14 16:08:40 浏览: 97
JavaScript CommonJS 模块是一种使用 JavaScript 语言实现的模块化编程规范。它是在服务器端开发 Node.js 应用程序时使用最广泛的模块化方案之一。
CommonJS 模块使用 `module.exports` 和 `require` 关键字来定义和使用模块。`module.exports` 属性用于导出模块中的内容,而 `require` 函数用于在其他文件中引用并使用导出的内容。
例如,假设你有一个名为 `math.js` 的文件,其中定义了两个函数:
```js
// math.js
function add(a, b) {
return a + b;
}
function subtract(a, b) {
return a - b;
}
module.exports = {
add: add,
subtract: subtract
};
```
然后,你可以在另一个文件中使用 `require` 函数来引用这个模块并使用它:
```js
// main.js
const math = require('./math');
console.log(math.add(1, 2)); // 3
console.log(math.subtract(1, 2)); // -1
```
这样,就可以在 `main.js` 中使用 `math.js` 中导出的函数了。
CommonJS 模块常用于服务器端开发,但是也可以使用工具将其转换为浏览器可以使用的形式。
相关问题
请问commonjs模块和es6模块的区别是什么
CommonJS和ES6是两种不同的JavaScript模块化规范,它们的区别如下:
1. CommonJS是同步加载,而ES6是异步加载。
2. CommonJS是运行时加载,而ES6是编译时加载。
3. CommonJS的导出方式是module.exports,而ES6的导出方式是export。
4. CommonJS的导入方式是require,而ES6的导入方式是import。
5. CommonJS模块是单例模式,即模块在第一次加载后会被缓存,后续加载会直接从缓存中读取;ES6模块则是通过复制来实现导入的。
6. CommonJS模块可以在任何地方导入,而ES6模块只能在顶层导入。
纯js怎么导入ECMAScript 模块系统 或者 CommonJS 模块系统?
在纯 JavaScript 中,你可以使用 ECMAScript 模块系统或 CommonJS 模块系统来导入模块。这里是如何使用它们的示例:
1. ECMAScript 模块系统(ES6+)
- 导入模块:使用 `import` 关键字来导入指定模块。
```javascript
import { module1, module2 } from './modules'; // 导入指定的模块
import * as myModule from './modules'; // 导入整个模块到一个对象中
// 使用导入的模块
console.log(module1);
module2.someFunction();
```
- 导出模块:使用 `export` 关键字来导出指定的函数、变量或对象。
```javascript
export const module1 = 'Module 1';
export function someFunction() {
// 函数实现
}
```
2. CommonJS 模块系统(Node.js)
- 导入模块:使用 `require` 函数来导入指定模块。
```javascript
const module1 = require('./modules').module1; // 导入指定的模块
const myModule = require('./modules'); // 导入整个模块
// 使用导入的模块
console.log(module1);
myModule.module2.someFunction();
```
- 导出模块:使用 `module.exports` 对象来导出指定的函数、变量或对象。
```javascript
module.exports = {
module1: 'Module 1',
someFunction() {
// 函数实现
}
};
```
请注意,ECMAScript 模块系统目前在浏览器中的支持程度较低,而 CommonJS 模块系统主要用于 Node.js 环境。如果你在浏览器中使用 ECMAScript 模块系统,需要确保浏览器支持并正确配置模块加载器,如 Webpack 或 Rollup 等。