1.首先用法的区别
exports,module.exports是对象,相当于一个模块对外展示的接口,使用的时候需要加 ‘=’
使用方法例如:
module.exports=...
exports=...
而export和export default是es6的语法,后面直接跟导出的东西,不加‘=’
使用方法例如:
export default ...
export...
2.exports其实是module.exports的引用
在node.js中,每个js是一个模块,所以每个js文件里面会有一个对象 —— module。
这个module对象初始化长成这样:
module={
exports:{}
}
里面有一个exports空对象。
于此同时的,还有一个exports,注意,不是module里面的exports,是和module同级的对象,它引用的是module.exports,也就是说module.exports = exports;
3.export和export default
二者都是es6的语法,用于导出,对应的导入语法是import。
1)export default在一个模块中只能有一个,当然也可以没有。export在一个模块中可以有多个。
2)export default的对象、变量、函数、类,可以没有名字。export的必须有名字。
3)export default对应的import和export有所区别。