0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎么導(dǎo)入導(dǎo)出Javascript模塊呢

OSC開(kāi)源社區(qū) ? 來(lái)源:OSCHINA 社區(qū) ? 2022-12-30 09:41 ? 次閱讀

筆者開(kāi)始學(xué)習(xí) Javascript 的時(shí)候,對(duì)模塊不太懂,不知道怎么導(dǎo)入模塊,導(dǎo)出模塊,就胡亂一通試 比如import xx from 'test.js'不起作用,就加個(gè)括號(hào)import {xx} from 'test.js' 反正總是靠蒙,總有一種寫(xiě)法是對(duì)的,其實(shí)還是沒(méi)有理解,還是不懂 尤其是在當(dāng)初寫(xiě)www.helloworld.net網(wǎng)站的時(shí)候,一遇到這種問(wèn)題,就懵逼了,尤其是引入第三方庫(kù)的時(shí)候 這種情況下更多,此篇文章也是為了怕以后忘記,自查用的,也希望能幫助更多的朋友,此篇文章只是針對(duì) ES6 的模塊相關(guān)知識(shí)

首先要知道 export,import 是什么

我們知道,JS 模塊導(dǎo)入導(dǎo)出,使用import,export這兩個(gè)關(guān)鍵字

export用于對(duì)外輸出本模塊

import用于導(dǎo)入模塊

也就是說(shuō)使用 export 導(dǎo)出一個(gè)模塊之后,其它文件就可以使用 import 導(dǎo)入相應(yīng)的模塊了

下面我們具體看看, import 和 export 到底怎么用?怎么導(dǎo)出模塊(比如變量,函數(shù),類,對(duì)象等)

1 導(dǎo)出單個(gè)變量

//a.js 導(dǎo)出一個(gè)變量,語(yǔ)法如下
export var site = "www.helloworld.net"

//b.js 中使用import 導(dǎo)入上面的變量
import { site } from "/.a.js" //路徑根據(jù)你的實(shí)際情況填寫(xiě)
console.log(site)//輸出:www.helloworld.net

2 導(dǎo)出多個(gè)變量

上面的例子是導(dǎo)出單個(gè)變量,那么如何導(dǎo)出多個(gè)變量呢

 //a.js 中定義兩個(gè)變量,并導(dǎo)出
 var siteUrl="www.helloworld.net"
 var siteName="helloworld開(kāi)發(fā)者社區(qū)"
 
 //將上面的變量導(dǎo)出
 export { siteUrl ,siteName }  
 
 
 
 // b.js 中使用這兩個(gè)變量
 import { siteUrl , siteName } from "/.a.js" //路徑根據(jù)你的實(shí)際情況填寫(xiě)

 console.log(siteUrl)//輸出:www.helloworld.net
 console.log(siteName)//輸出:helloworld開(kāi)發(fā)者社區(qū)

3 導(dǎo)出函數(shù)

導(dǎo)出函數(shù)和導(dǎo)出變量一樣,需要添加{ }

//a.js 中定義并導(dǎo)出一個(gè)函數(shù)
function sum(a, b) {
    return a + b
}
//將函數(shù)sum導(dǎo)出
export { sum } 


//b.js 中導(dǎo)入函數(shù)并使用
import { sum } from "/.a.js" //路徑根據(jù)你的實(shí)際情況填寫(xiě)
console.log( sum(4,6) ) //輸出:10

4 導(dǎo)出對(duì)象

js 中一切皆對(duì)象,所以對(duì)象一定是可以導(dǎo)出的,并且有兩種寫(xiě)法

4.1 第一種寫(xiě)法

使用export default關(guān)鍵字導(dǎo)出,如下

//a.js 中,定義對(duì)象并導(dǎo)出, 注意,使用export default 這兩個(gè)關(guān)鍵字導(dǎo)出一個(gè)對(duì)象
export default {
    siteUrl:'www.helloworld.net',
    siteName:'helloworld開(kāi)發(fā)者社區(qū)'
}


//b.js 中導(dǎo)入并使用
import obj from './a.js'   //路徑根據(jù)你的實(shí)際情況填寫(xiě)
console.log(obj.siteUrl)//輸出:www.helloworld.net
console.log(obj.siteName)//輸出:helloworld開(kāi)發(fā)者社區(qū)

4.2 第二種寫(xiě)法

同樣是使用export default關(guān)鍵字,如下

//a.js 中定義對(duì)象,并在最后導(dǎo)出
var obj = {
   siteUrl:'www.helloworld.net',
    siteName:'helloworld開(kāi)發(fā)者社區(qū)'
}

export default obj//導(dǎo)出對(duì)象obj


//b.js 中導(dǎo)入并使用
import obj from './a.js'   //路徑根據(jù)你的實(shí)際情況填寫(xiě)
console.log(obj.siteUrl)//輸出:www.helloworld.net
console.log(obj.siteName)//輸出:helloworld開(kāi)發(fā)者社區(qū)

5 導(dǎo)出類

導(dǎo)出類與上面的導(dǎo)出對(duì)象類似,同樣是用export default關(guān)鍵字,同樣有兩種寫(xiě)法

5.1 第一種寫(xiě)法

//a.js 中定義一個(gè)類并直接導(dǎo)出
export default class Person {
    //類的屬性
    site = "www.helloworld.net"

    //類的方法
    show(){
        console.log(this.site)
    }
}


//b.js 中導(dǎo)入并使用
//導(dǎo)入類
import Person from './a.js'

//創(chuàng)建類的一個(gè)對(duì)象person
let person = new Person()

//調(diào)用類的方法
person.show()  //輸出:www.helloworld.net

5.2 第二種寫(xiě)法

//a.js 中定義一個(gè)類,最后導(dǎo)出
class Person {
    //類的屬性
    site = "www.helloworld.net"

    //類的方法
    show(){
        console.log(this.site)
    }
}

//導(dǎo)出這個(gè)類
export default Person 



//b.js 中導(dǎo)入并使用
//導(dǎo)入類
import Person from './a.js'

//創(chuàng)建類的一個(gè)對(duì)象person
let person = new Person()

//調(diào)用類的方法
person.show()  //輸出:www.helloworld.net

小結(jié)

下面我們簡(jiǎn)單總結(jié)一下 export與export default的區(qū)別

export 與 export default 均可用于導(dǎo)出常量、函數(shù)、文件、模塊等

可以在其它文件或模塊中通過(guò) import+(常量 | 函數(shù) | 文件 | 模塊) 名的方式,將其導(dǎo)入,以便能夠?qū)ζ溥M(jìn)行使用

export default 后面不能跟 const 或 let 的關(guān)鍵詞

export、import 可以有多個(gè),export default 僅有一個(gè)。

通過(guò) export 方式導(dǎo)出,在導(dǎo)入時(shí)要加 { },export default 則不需要

export 具名導(dǎo)出 xxx ,export default 匿名。區(qū)別在于導(dǎo)入的時(shí)候,export 需要一樣的名稱才能匹配,后者無(wú)論取什么名都可以。

模塊化管理中一個(gè)文件就是一個(gè)模塊,export 可以導(dǎo)出多個(gè)方法和變量,export default 只能導(dǎo)出當(dāng)前模塊,一個(gè) js 文件中只支持出現(xiàn)一個(gè)

對(duì)于import,export,export default,他們的用法上面的例子已經(jīng)很詳細(xì)的列出了,忘記的時(shí)候,可以當(dāng)作參考看看 最重要的還是要明白為什么要這么寫(xiě),實(shí)在不明白記住就行了。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    515

    瀏覽量

    53755

原文標(biāo)題:徹底弄懂Javascript模塊導(dǎo)入導(dǎo)出

文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問(wèn)怎么導(dǎo)入導(dǎo)出AD規(guī)則?

    如何導(dǎo)入導(dǎo)出AD規(guī)則?
    發(fā)表于 03-01 07:35

    INSTRUMENTS導(dǎo)出導(dǎo)入跟蹤數(shù)據(jù)

    INSTRUMENTS調(diào)試工具的使用(三十二) —— 高級(jí)任務(wù)之導(dǎo)出導(dǎo)入跟蹤數(shù)據(jù)(一)
    發(fā)表于 08-30 09:18

    Altium規(guī)則的導(dǎo)入導(dǎo)出

    在pcb設(shè)計(jì)的時(shí)候,有時(shí)候兩個(gè)板子,甚至多個(gè)板類型相同,這時(shí)候,對(duì)其中一個(gè)已設(shè)置好的規(guī)則進(jìn)行挪用;能夠節(jié)省我們不少的時(shí)間與精力。下面就來(lái)和大家講解下在AD軟件中怎樣對(duì)規(guī)則進(jìn)行導(dǎo)出導(dǎo)入:一.規(guī)則的導(dǎo)出:1.選擇菜單Design→
    發(fā)表于 09-03 17:15

    STM32CubeIDE如何導(dǎo)入/導(dǎo)出多核項(xiàng)目?

    大家好,我在 CubeIDE 中有一個(gè)雙核微控制器 (STM32H755) 的項(xiàng)目,結(jié)構(gòu)如下。我正在嘗試通過(guò)導(dǎo)入/導(dǎo)出功能將其導(dǎo)出導(dǎo)入到另一個(gè) CubeIDE,但我永遠(yuǎn)無(wú)法正確
    發(fā)表于 12-13 08:23

    Citect標(biāo)簽導(dǎo)入導(dǎo)出資料

    本章就Citect標(biāo)簽導(dǎo)入導(dǎo)出,其實(shí)包含變量標(biāo)簽、局部變量、趨勢(shì)標(biāo)簽、報(bào)警定義等都可以使用該方法來(lái)實(shí)現(xiàn)快速定義和修改
    發(fā)表于 05-10 17:25 ?0次下載
    Citect標(biāo)簽<b class='flag-5'>導(dǎo)入</b><b class='flag-5'>導(dǎo)出</b>資料

    PCB設(shè)計(jì):如何導(dǎo)入導(dǎo)出設(shè)計(jì)規(guī)則

    介紹如何在Altium Designer中導(dǎo)入導(dǎo)出設(shè)計(jì)規(guī)則,借鑒其他設(shè)計(jì)的優(yōu)秀合理的規(guī)則設(shè)置(寶貴的設(shè)計(jì)經(jīng)驗(yàn))為我所用,而不需要自己手動(dòng)創(chuàng)建。
    發(fā)表于 06-05 07:17 ?9527次閱讀
    PCB設(shè)計(jì):如何<b class='flag-5'>導(dǎo)入</b><b class='flag-5'>導(dǎo)出</b>設(shè)計(jì)規(guī)則

    XMC MCU 開(kāi)發(fā)基礎(chǔ):DAVE3項(xiàng)目導(dǎo)入導(dǎo)出

    DAVE3 項(xiàng)目導(dǎo)入導(dǎo)出
    的頭像 發(fā)表于 07-11 02:12 ?3949次閱讀

    PCB技術(shù):Altium怎么安裝導(dǎo)入導(dǎo)出插件

    EDA軟件中Altium Designer的兼容性是最好的,在其他EDA平臺(tái)設(shè)計(jì)的原理圖、PCB等文件,有時(shí)候會(huì)統(tǒng)一到Altium Designer平臺(tái),或者將在Altium Designer平臺(tái)設(shè)計(jì)的文件導(dǎo)入其他平臺(tái),這種時(shí)候需要用到導(dǎo)入
    的頭像 發(fā)表于 10-14 10:36 ?6306次閱讀
    PCB技術(shù):Altium怎么安裝<b class='flag-5'>導(dǎo)入</b><b class='flag-5'>導(dǎo)出</b>插件

    MACSV數(shù)據(jù)庫(kù)導(dǎo)出導(dǎo)入的方法

    MACSV數(shù)據(jù)庫(kù)導(dǎo)出、導(dǎo)入的方法(現(xiàn)代電源技術(shù)期末考試)-文檔為MACSV數(shù)據(jù)庫(kù)導(dǎo)出導(dǎo)入的方法詳解文檔,是一份不錯(cuò)的參考資料,感興趣的可以下載看看,,,,,,,,,,,,,
    發(fā)表于 09-17 15:41 ?2次下載
    MACSV數(shù)據(jù)庫(kù)<b class='flag-5'>導(dǎo)出</b>、<b class='flag-5'>導(dǎo)入</b>的方法

    如何寫(xiě)一個(gè)公用工具來(lái)進(jìn)行Excel的導(dǎo)入導(dǎo)出

    日常在做后臺(tái)系統(tǒng)的時(shí)候會(huì)很頻繁的遇到Excel導(dǎo)入導(dǎo)出的問(wèn)題,正好這次在做一個(gè)后臺(tái)系統(tǒng),就想著寫(xiě)一個(gè)公用工具來(lái)進(jìn)行Excel的導(dǎo)入導(dǎo)出
    的頭像 發(fā)表于 10-09 14:19 ?1430次閱讀

    百萬(wàn)數(shù)據(jù)的導(dǎo)入導(dǎo)出解決方案

    前景 1 傳統(tǒng)POI的的版本優(yōu)缺點(diǎn)比較 2 使用方式哪種看情況 3 百萬(wàn)數(shù)據(jù)導(dǎo)入導(dǎo)出(正菜) 4 總結(jié) 前景 在項(xiàng)目開(kāi)發(fā)中往往需要使用到數(shù)據(jù)的導(dǎo)入導(dǎo)出,
    的頭像 發(fā)表于 10-11 17:19 ?1275次閱讀

    如何導(dǎo)入導(dǎo)出SCL源文件?

    如何導(dǎo)入導(dǎo)出SCL源文件?
    的頭像 發(fā)表于 01-16 10:41 ?2130次閱讀

    TIA Portal Openness導(dǎo)入/導(dǎo)出的基本原理

    可以導(dǎo)出某些組態(tài)數(shù)據(jù),然后在編輯之后再將數(shù)據(jù)重新導(dǎo)入同一項(xiàng)目或不同項(xiàng)目中。
    的頭像 發(fā)表于 06-21 11:48 ?3527次閱讀
    TIA Portal Openness<b class='flag-5'>導(dǎo)入</b>/<b class='flag-5'>導(dǎo)出</b>的基本原理

    import模塊導(dǎo)入方法

    import 語(yǔ)句的基本語(yǔ)法格式如下: import 模塊名 # 導(dǎo)入一個(gè)模塊 import 模塊1,模塊2… #
    的頭像 發(fā)表于 09-11 17:31 ?1162次閱讀

    博圖的導(dǎo)入/導(dǎo)出設(shè)置介紹

    TIA Portal 設(shè)置可導(dǎo)出為一個(gè)文件。在導(dǎo)入這些設(shè)置時(shí),將同時(shí)應(yīng)用這些設(shè)置。通過(guò)該功能,可將設(shè)置發(fā)送給其他用戶。與此類似,可統(tǒng)一設(shè)定系統(tǒng)設(shè)置,為多個(gè)工程組態(tài) PC 設(shè)置統(tǒng)一的操作環(huán)境。
    的頭像 發(fā)表于 11-27 11:45 ?6071次閱讀
    博圖的<b class='flag-5'>導(dǎo)入</b>/<b class='flag-5'>導(dǎo)出</b>設(shè)置介紹