js 中 export 和 exports
时间: 2024-08-16 21:03:45 浏览: 35
在JavaScript中,`export`和`exports`是模块化编程的关键概念,用于导出函数、变量、对象等内容供其他模块使用。
`export`是一个声明,通常放在模块的顶层,用来指定哪些内容应该对外部可见并可以被导入。例如:
```javascript
// module.js
export const myVariable = 'Hello from module';
export function myFunction(param) {
return `Processed ${param}`;
}
```
在这里,`myVariable`和`myFunction`都可以通过`import`语句在另一个模块中被访问。
`exports`则是当前模块暴露给外部的默认对象,所有未通过`export`明确命名的内容都会成为`exports`的一部分。早期版本的Node.js中,直接使用`exports`关键字导出内容。但在ES6模块系统中,更推荐使用`export`语法,因为这样能更好地管理导出的内容类型。
例如,在旧版风格中:
```javascript
// old-style module.js
exports.myVariable = 'Hello from module';
exports.myFunction = function(param) {
// ...
};
```
相关问题
export default和exports
export default 和 exports 是 JavaScript 中用于导出模块的两种不同语法。
1. export default:
- export default 语法用于导出一个默认的值或者一个默认的函数。一个模块只能有一个默认导出。
- 导入这个模块时,可以使用任意的名称来引用默认导出,而不需要使用花括号。
- 示例:
```
// 模块A.js
const myDefault = 'Hello, World!';
export default myDefault;
// 导入模块A.js
import myDefault from './A.js';
console.log(myDefault); // 输出: 'Hello, World!'
```
2. exports:
- exports 是 CommonJS 标准中用于导出模块的语法。它允许多个值或函数被导出,并且需要使用花括号来导入这些导出。
- 示例:
```
// 模块B.js
exports.myFunc = () => {
console.log('Function called');
};
exports.myVariable = 42;
// 导入模块B.js
const { myFunc, myVariable } = require('./B.js');
myFunc(); // 输出: 'Function called'
console.log(myVariable); // 输出: 42
```
总结:
- export default 提供了一种更简洁的导出方式,适用于只导出一个值或函数的情况。
- exports 适用于导出多个值或函数的情况,并且需要使用花括号进行导入。
module.exports 和 exports和export和export default
这些关键字都是用于在 JavaScript 中导出模块的方式。
1. `module.exports` 是 CommonJS 规范中用于导出模块的方式。在 Node.js 中,`module.exports` 是一个指向当前模块导出对象的引用。可以通过给 `module.exports` 赋值来导出一个对象或函数。
例如:
```
// 导出一个函数
function add(a, b) {
return a + b;
}
module.exports = add;
```
2. `exports` 是 `module.exports` 的一个辅助对象,可以通过给 `exports` 对象的属性赋值来导出模块。
例如:
```
// 导出一个对象
exports.name = 'Tom';
exports.age = 18;
```
这个模块实际上等价于:
```
module.exports = {
name: 'Tom',
age: 18
};
```
3. `export` 是 ES6 中用于导出模块的关键字。可以通过 `export` 关键字导出一个变量、函数或对象。
例如:
```
// 导出一个变量
export const name = 'Tom';
// 导出一个函数
export function add(a, b) {
return a + b;
}
// 导出一个对象
export default {
name: 'Tom',
age: 18
};
```
4. `export default` 也是 ES6 中用于导出模块的关键字,但是它只能导出一个默认值。
例如:
```
// 导出一个默认值
export default function add(a, b) {
return a + b;
}
// 导出一个默认对象
export default {
name: 'Tom',
age: 18
};
```
在导入模块时,可以使用 `import` 关键字来引入模块。例如:
```
// 导入 CommonJS 模块
const add = require('./add');
// 导入 ES6 模块
import { name, add } from './module';
import person from './person';
```