js文件導(dǎo)入導(dǎo)出方式總結(jié)

常用的導(dǎo)出方式有四種module.exports,exportsexport,export default和兩種導(dǎo)入方式requireimport
首先來(lái)看一下module exportsexports,這兩種導(dǎo)出方式的區(qū)別如下:

  • module.exports
    每一個(gè)Nodejs文件都會(huì)自動(dòng)創(chuàng)建一個(gè)module對(duì)象,這個(gè)對(duì)象有一個(gè)exports屬性,初始值是一個(gè)空對(duì)象。
module.exports = {}
  • exports
    exports是引用 module.exports的值。module.exports 被改變的時(shí)候,exports不會(huì)被改變,而模塊導(dǎo)出的時(shí)候,真正導(dǎo)出的執(zhí)行是module.exports,而不是exports

再來(lái)看一下export defalutexport的區(qū)別:

  • export defalutexport 都可以用來(lái)導(dǎo)出函數(shù),文件,模塊,常量等
  • 在一個(gè)文件中,export可以有多個(gè),但是export default只有一個(gè)。
  • 通過(guò)export方式導(dǎo)出,在導(dǎo)入時(shí)要加{ },export default則不需要

最后,我們?cè)賮?lái)看一下requireimport 的區(qū)別

  • require是在CommonJS中出現(xiàn)的,import是在ES6中出現(xiàn)的,是ES6的一個(gè)
    語(yǔ)法。
  • require的調(diào)用時(shí)間為運(yùn)行時(shí)調(diào)用,所以require可以出現(xiàn)在文件的任何地方,而import是編譯時(shí)調(diào)用,所以必須放在文件頭部。
  • require是賦值過(guò)程,其實(shí)require的結(jié)果就是對(duì)象、數(shù)字、字符串、函數(shù)等,再把require的結(jié)果賦值給某個(gè)變量
    import是解構(gòu)過(guò)程,但是目前所有的引擎都還沒(méi)有實(shí)現(xiàn)import,我們?cè)?code>node中使用babel支持ES6,也僅僅是將ES6轉(zhuǎn)碼為ES5再執(zhí)行,import語(yǔ)法會(huì)被轉(zhuǎn)碼為require
記住

export default導(dǎo)出的東西只能用import導(dǎo)入。而module.exportsexports的東西可以以任何一種方式導(dǎo)入。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容