1.首先用法的區(qū)別
exports,module.exports是對(duì)象季俩,相當(dāng)于一個(gè)模塊對(duì)外展示的接口钮糖,使用的時(shí)候需要加 ‘=’?
使用方法例如:
module.exports=...
exports=...
而export和export default是es6的語法,后面直接跟導(dǎo)出的東西酌住,不加‘=’
使用方法例如:
export default ...
export...
2.exports其實(shí)是module.exports的引用
在node.js中店归,每個(gè)js是一個(gè)模塊,所以每個(gè)js文件里面會(huì)有一個(gè)對(duì)象 —— module酪我。
這個(gè)module對(duì)象初始化長(zhǎng)成這樣:
module={
? ? exports:{}
}
里面有一個(gè)exports空對(duì)象消痛。
于此同時(shí)的,還有一個(gè)exports都哭,注意秩伞,不是module里面的exports,是和module同級(jí)的對(duì)象质涛,它引用的是module.exports,也就是說module.exports =?exports稠歉;
3.export和export default
二者都是es6的語法,用于導(dǎo)出汇陆,對(duì)應(yīng)的導(dǎo)入語法是import怒炸。
1)export default在一個(gè)模塊中只能有一個(gè),當(dāng)然也可以沒有毡代。export在一個(gè)模塊中可以有多個(gè)阅羹。
2)export default的對(duì)象、變量教寂、函數(shù)捏鱼、類,可以沒有名字酪耕。export的必須有名字导梆。
3)export default對(duì)應(yīng)的import和export有所區(qū)別。