exports、module.exports和export、export default之间的区别
总结:
require: node 和 es6 都支持的引入(CommonJS规范)
export / import : 只有es6 支持的导出引入
module.exports / exports: 只有 node 支持的导出(CommonJS规范)
使用方法:
CommonJS规范:
简单来说:CommonJS定义的模块分为: 模块标识(module)、模块定义(exports) 、模块引用(require)
module.exports 和 exports 的关系 :
exports = module.exports = {};
也就是说exports = module.exports 都指向同一个内存地址,再来看看一个例子:
// a.js
let a = 100;exports.a = 200;
// 然后把a指向另外一个地址
exports = '另外的地址'// b.js
// 引入模块var example = require('./a.js')
console.log(example.a) // 200
可以看出,require导出的内容是module.exports的内容,而不是exports的,简单来说,exports用来帮助module.exports操作内存中的数据。
最简单的方法就是尽量都用 module.exports。避免混淆。
ES6
export 和 export default的区别:
- 在一个文件或模块中,export、import可以有多个,export default仅有一个
- 通过export方式导出,在导入时要加{ },export default则不需要
- export能直接导出变量表达式,export default不行。
直接看例子,一目了然:
//a.jsexport const a = '100' // 方式一
export dogSay = function(){ console.log('汪 汪')
}// 方式二
const catSay= function(){ console.log('喵 喵')
}
export { catSay}// export default方式
const mark85 = 1000
export default mark85
// b.js
import { a, dogSay, catSay} from './a.js'; // 引入export导出的数据
import number from './a.js' // 引入export default导出的数据
import * as obj from './a.js' // 集合成对象一并导出console.log(a) // 100
dogSay(); // 汪 汪
catSay(); // 喵 喵
console.log(number) // 1000
console.log(obj.a) // 100
console.log(obj.default) // 1000
exports、module.exports和export、export default之间的区别相关推荐
- require 动态加载_require,exports,module.exports和import,export,export default
我们前端在开发过程中经常会遇到导入导出功能, 在导入时,有时候是require,有时候是import 在导出时,有时候是exports,module.exports,有时候是export,export ...
- exports module.exports export export default之间的关系
exports 和module.exports是CommonJS模块规范 export export default是ES6模块的规范,两者完全是不同的概念. node应用由模块组成,采用的是Comm ...
- module.exports与exports,export与export default之间的关系和区别
CommonJS模块规范和ES6模块规范完全是两种不同的概念. CommonJS模块规范: 根据这个规范,每个文件就是一个模块,有自己的作用域.在一个文件里面定义的变量.函数.类,都是私有的,对其他文 ...
- 一文解读exports、module.exports 和 export、export default
对于前端初学者来说,exports.module.exports 和 export.export default 容易让人产生误解,笔者顺便写篇文章解读一下. 第一部分:exports 和 modul ...
- module.exports 和 export default
CommonJS模块规范和ES6模块规范完全是两种不同的概念 CommonJS模块规范 Node应用由模块组成,采用CommonJS模块规范. 根据这个规范,每个文件就是一个模块,有自己的作用域.在一 ...
- 导出与导入(require,import,module.exports,exports,export,export default)
一.不同点 1.加载时间不同 require: 运行时加载 import: 编译时加载(效率高) [先写调用,后写import导入不报错] [加载时机的原因,让import会提升到整个文件的头部] 2 ...
- (区别、详解、使用)module.exports与exports,export与export default,import 与require
目录 导出简介(里面有小细节请仔细阅读) module.exports与exports 1.该js文件要导出的值即为test 2.该js文件要导出的值即为test1和test2 3. 注意这里我是先给 ...
- ES6的export与Nodejs的module.exports比较
首先我们要明白一个前提,CommonJS模块规范和ES6模块规范完全是两种不同的概念. CommonJS模块规范 Node应用由模块组成,采用CommonJS模块规范. 根据这个规范,每个文件就是一个 ...
- module.exports与exports,export与export defa
首先我们要明白一个前提,CommonJS模块规范和ES6模块规范完全是两种不同的概念. CommonJS模块规范 Node应用由模块组成,采用CommonJS模块规范. 根据这个规范,每个文件就是一个 ...
最新文章
- php语+言教程,写给thinkphp开发者的laravel系列教程(九)打印数据-Fun言
- android系统的手机目录
- IIS 之 失败请求跟踪规则
- 【算法知识】详解希尔排序算法
- 数组转换成json key-value形式
- 【Uva 12093】Protecting Zonk
- 渐进式web应用程序_渐进式Web应用程序与加速的移动页面:有什么区别,哪种最适合您?
- 趣谈程序员真香定律:源码即设计
- Java多线程11:ReentrantLock的使用和Condition
- 微信模板消息47001错误
- C# 根据年月日计算星期几
- Android技术栈总结
- BERT出来后难道我们无路可走了吗?错!这些新想法你需要了解!
- 服务器搭建bbr加速
- 两台局域网电脑共享文件及传输文件集锦
- MapReduce经典案例实战
- ipv4 pxe 联想start_PC开机出现Start pxe over ipv4解决办法 PC重启后显示start pxe over IPv4...
- leetcode【中等】781、森林中的兔子
- Foxmail.exe -损坏的映像 错误修复
- 蓝牙开发那些事(9)——结合代码看a2dp协议