export,import和export default的關(guān)系

1.export 命令
export命令用戶規(guī)定模塊的對(duì)外接口
一個(gè)模塊就是一個(gè)獨(dú)立的文件,該文件內(nèi)部的所有變量,外部無法獲取,如果希望外部能夠讀取內(nèi)部的某個(gè)變量,就必須使用export關(guān)鍵字輸出該變量
用法1

    使用export命令輸出變量沸移。
    export var firstName = 'Michael';
     export var lastName = 'Jackson';

用法2

    在export命令后面策肝,使用大括號(hào)指定所要輸出的一組變量
    var firstName = 'Michael';
    var lastName = 'Jackson';
    var year = 1958;
    export {firstName, lastName, year};

注意:export命令規(guī)定的是對(duì)外的接口吸奴,必須與模塊內(nèi)部的變量建立一一對(duì)應(yīng)關(guān)系共虑。

    // 報(bào)錯(cuò)
        export 1;
    // 報(bào)錯(cuò)
          var m = 1;
          export m;
    正確寫法:
        // 寫法一
        export var m = 1;
        // 寫法二
            var m = 1;
        export {m};
        // 寫法三
        var n = 1;
        export {n as m};

2.import命令
import命令用于輸入其他模塊提供的功能,使用export命令定義了模塊的對(duì)外接口以后,其他js文件就可以通過import命令加載這個(gè)模塊
1.import命令接受一對(duì)大括號(hào),里面指定要從其他模塊導(dǎo)入的變量名,大括號(hào)里面的變量名,必須與被導(dǎo)入模塊對(duì)應(yīng)接口的名稱相同

    // main.js
    import {firstName, lastName, year} from './profile.js';

2.如果想為輸入的變量重新取一個(gè)名字愧怜,import命令要使用as關(guān)鍵字,將輸入的變量重命名

    import { lastName as surname } from './profile.js';

3.import命令輸入的變量都是只讀的,因?yàn)樗谋举|(zhì)是出入家口,不遜在加載模塊的腳本里面,改寫接口

    import {a} from './xxx.js'
    a = {}; // Syntax Error : 'a' is read-only;

3.export default

1.Export default命令為模塊指定默認(rèn)輸出,使用import命令的時(shí)候妈拌,用戶需要知道所要加載的變量名或函數(shù)名拥坛,否則無法加載,但是用export default就不需要
2.使用export default默認(rèn)輸出

    // export-default.js
      export default function () {
          console.log('foo');
        }

上面代碼是一個(gè)模塊文件export-default.js,它的默認(rèn)輸出是一個(gè)函數(shù),其他模塊加載該模塊時(shí)尘分,import命令可以為該匿名函數(shù)指定任意名字猜惋。

    // import-default.js
        import customName from './export-default';
        customName(); // 'foo'
    上面代碼的import命令,可以用任意名稱指向export-default.js輸出的方法培愁,這時(shí)就不需要知道原模塊輸出的函數(shù)名著摔。需要注意的是,這時(shí)import命令后面定续,不使用大括號(hào)谍咆。

4.比較一下默認(rèn)輸出(export default)和正常輸出(export)。

第一組 默認(rèn)輸出

      export default function crc32() { // 輸出
                  // ...
          }
      import crc32 from 'crc32'; // 輸入

第二組 正常輸出

        export function crc32() { // 輸出
            // ...
        };
    import {crc32} from 'crc32'; // 輸入

*上面代碼的兩組寫法私股,第一組是使用export default時(shí)摹察,對(duì)應(yīng)的import語句不需要使用大括號(hào);第二組是不使用export default時(shí)倡鲸,對(duì)應(yīng)的import語句需要使用大括號(hào)供嚎。
*export default命令用于指定模塊的默認(rèn)輸出。顯然,一個(gè)模塊只能有一個(gè)默認(rèn)輸出克滴,因此export default命令只能使用一次逼争。所以,import命令后面才不用加大括號(hào)偿曙,因?yàn)橹豢赡芪ㄒ粚?duì)應(yīng)export default命令氮凝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市望忆,隨后出現(xiàn)的幾起案子罩阵,更是在濱河造成了極大的恐慌,老刑警劉巖启摄,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稿壁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡歉备,警方通過查閱死者的電腦和手機(jī)傅是,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蕾羊,“玉大人喧笔,你說我怎么就攤上這事」暝伲” “怎么了书闸?”我有些...
    開封第一講書人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)利凑。 經(jīng)常有香客問我浆劲,道長(zhǎng),這世上最難降的妖魔是什么哀澈? 我笑而不...
    開封第一講書人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任牌借,我火速辦了婚禮,結(jié)果婚禮上割按,老公的妹妹穿的比我還像新娘膨报。我一直安慰自己,他們只是感情好适荣,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開白布现柠。 她就那樣靜靜地躺著,像睡著了一般束凑。 火紅的嫁衣襯著肌膚如雪晒旅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,043評(píng)論 1 291
  • 那天汪诉,我揣著相機(jī)與錄音废恋,去河邊找鬼谈秫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鱼鼓,可吹牛的內(nèi)容都是我干的拟烫。 我是一名探鬼主播,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼迄本,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼硕淑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嘉赎,我...
    開封第一講書人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤置媳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后公条,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拇囊,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年靶橱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寥袭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡关霸,死狀恐怖传黄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情队寇,我是刑警寧澤膘掰,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站英上,受9級(jí)特大地震影響炭序,放射性物質(zhì)發(fā)生泄漏啤覆。R本人自食惡果不足惜苍日,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窗声。 院中可真熱鬧相恃,春花似錦、人聲如沸笨觅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽见剩。三九已至杀糯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間苍苞,已是汗流浹背固翰。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工狼纬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骂际。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓疗琉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親歉铝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子盈简,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)太示,斷路器柠贤,智...
    卡卡羅2017閱讀 134,637評(píng)論 18 139
  • 概述 歷史上,JavaScript 一直沒有模塊(module)體系类缤,無法將一個(gè)大程序拆分成互相依賴的小文件种吸,再用...
    emmet7life閱讀 615評(píng)論 0 0
  • 接待員聲音積極樂觀、親和有禮呀非,又有美好的遐想力坚俗,給男人好感并能另之開心,從而造成未見前的一些喜歡岸裙〔埽可是見面后他覺得...
    小青l(xiāng)ove閱讀 389評(píng)論 0 1
  • 大學(xué)大部分人都是參加社團(tuán),報(bào)各種班降允,考各種證恩闻,各種與老師交朋友,找女朋友或男朋友等等剧董。這些組成了你的生活幢尚,然而真正...
    肉絲H閱讀 125評(píng)論 0 1
  • fs_閱讀 184評(píng)論 0 0