export default和exports.default的区别
时间: 2024-06-12 10:02:39 浏览: 174
export 与 export default 区别
在JavaScript中,`export default` 和 `exports.default` 都是用于导出模块中的默认成员的方式,但它们的作用范围和使用场景略有不同。
1. **`export default`**:
这是在ES6模块系统中引入的语法。当你在一个模块中有一个唯一的、全局的导出(通常是函数或对象),并且想要简化导入者的代码时,可以使用 `export default`。这种方式下,导入者只需要使用 `import Something from 'module'` 的形式,就可以直接访问到默认导出的变量或函数。`export default` 后面可以跟任意表达式,如:
```javascript
// module.js
export default function helloWorld() {
return 'Hello, world!';
}
```
2. **`exports.default`**:
这是CommonJS(旧版Node.js)模块规范中的方式。当你在CommonJS模块中也想设置一个默认导出时,需要显式地将默认导出赋值给 `exports` 对象的 `default` 属性。这种方式通常用在不支持ES6模块的环境中,导入时也相对繁琐,例如:
```javascript
// commonjs-style.js
var someFunction = function helloWorld() {
return 'Hello, world!';
};
exports.default = someFunction;
```
使用时,导入者需要写为 `var hello = require('module').default`。
总结来说,`export default` 是ES6模块系统的推荐做法,更简洁且自动绑定到顶级作用域;而 `exports.default` 在非ES6环境中或为了兼容性考虑可能会被使用,但不如现代语法那么直观。
阅读全文