【前端小卡】module.exports、exports、export 、export.default

首先我们要明确一点commonJs(nodejs)和es6写法完全是两种不同的概念,他们没有任何联系
  • 首先moudle.exports和exports是commonjs的写法,它的引用方式是通过require
  • export和export.default是es6的写法,他们的引用方式是通过import
  • 下面简单的讲解他们的用法
1. module.exports、exports
  • 用法
//module.exports可以直接赋值
module.exports = {
    hello: hello,
    greet: greet
};
// 不可以直接对exports赋值
exports.hello = hello;
exports.greet = greet;
  • 默认情况下,Node准备的exports变量和module.exports变量实际上是同一个变量,并且初始化为空对象{},即exports是module.exports的引用
exports.foo = function () { return 'foo'; };
exports.bar = function () { return 'bar'; };
//这两个是等价的
  • 如果我们要输出的是一个函数或数组,那么,只能给module.exports赋值,给exports赋值是无效的,因为赋值后,module.exports仍然是空对象{}。
2. export 、export.default
  • 他们两个记住一点就是应用的区别
export {test}   // 导出
import { test } from '...' // 引入


export.default function () {
    console.log('------')
} // 导出

import test from '....' // 引入
  • export default 向外暴露的成员,可以使用任意变量来接收
  • 在一个模块中,export default 只允许向外暴露一次
  • 在一个模块中,可以同时使用export default 和export 向外暴露成员
  • 其实可以记住一个口诀,“导出有default,引入则无大括号{};导出无default,引入则有大括号”
    关注我们,一块成长
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这些关键字都是用于在 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'; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值