<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScriptmodule導出和導入的介紹(詳解)

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 19:27:25
        文檔

        JavaScriptmodule導出和導入的介紹(詳解)

        JavaScriptmodule導出和導入的介紹(詳解):本篇文章給大家?guī)淼膬热菔顷P于JavaScript module導出和導入的介紹(詳解),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。最近看了些Vue框架寫的程序,發(fā)現(xiàn)自己的前端知識還停留在幾年以前,發(fā)現(xiàn)現(xiàn)在Javascript程序里有各種各樣的對
        推薦度:
        導讀JavaScriptmodule導出和導入的介紹(詳解):本篇文章給大家?guī)淼膬热菔顷P于JavaScript module導出和導入的介紹(詳解),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。最近看了些Vue框架寫的程序,發(fā)現(xiàn)自己的前端知識還停留在幾年以前,發(fā)現(xiàn)現(xiàn)在Javascript程序里有各種各樣的對

        本篇文章給大家?guī)淼膬热菔顷P于JavaScript module導出和導入的介紹(詳解),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

        最近看了些Vue框架寫的程序,發(fā)現(xiàn)自己的前端知識還停留在幾年以前,發(fā)現(xiàn)現(xiàn)在Javascript程序里有各種各樣的對module的導入和到處,導入乍一看跟python的語法挺像的無非就是把from和import這兩個關鍵詞的使用顛倒了一下順序。仔細看下來還是和python挺不一樣的import模塊的前提是模塊有導出,并且還分默認導出和命名導出,有些麻煩。所以今天這篇文章就把所有的export形式和相應的import使用匯總一下。

        ES6在語言標準的層面上,實現(xiàn)了模塊功能,成為瀏覽器和服務器通用的模塊解決方案,完全可以取代 CommonJS 和 AMD 規(guī)范,基本特點如下:

      1. 每一個模塊只加載一次, 每一個JS只執(zhí)行一次, 如果下次再去加載同目錄下同文件,直接從內存中讀取;

      2. 每一個模塊內聲明的變量都是局部變量, 不會污染全局作用域;

      3. 模塊內部的變量或者函數(shù)可以通過export導出;

      4. 一個模塊可以導入別的模塊

      5. 2.模塊功能主要由兩個命令構成:export和import。export命令用于規(guī)定模塊的對外接口,import命令用于輸入其他模塊提供的功能;

        3.一個模塊就是一個獨立的文件,該文件內部的所有變量,外部無法獲取。如果你希望外部能夠讀取模塊內部的某個變量,就必須使用export關鍵字輸出該變量;

        var year = '2018';
        var month = 'Febuary';
        export {year, month};

        export 導出模塊

        export語法聲明用于導出函數(shù)、對象、指定文件(或模塊)的原始值。 有兩種模塊導出方式:命名式導出(名稱導出)和默認導出(定義式導出),命名式導出每個模塊可以有多個,而默認導出每個模塊僅一個 。

        命名式導出

        模塊可以通過export前綴關鍵詞聲明導出對象,導出對象可以是多個。這些導出對象用名稱進行區(qū)分,稱之為命名式導出

        export { func }; // 導出一個已定義的函數(shù)func
        export const foo = Math.sqrt(100); // 導出一個常量

        我們可以使用*和from關鍵字來實現(xiàn)的模塊的繼承:

        export * from 'base_module';

        模塊導出時,可以指定模塊的導出成員。導出成員可以認為是類中的公有成員,而非導出成員可以認為是類中的私有成員:

        var name = 'Kevin的居酒屋';
        var domain = 'http://coffee.toast.com';
         
        export {name, domain}; // 相當于導出{name:name,domain:domain}

        模塊導出時,我們可以使用as關鍵字對導出成員進行重命名,上面的導出可以這樣寫:

        export {name as siteName, domain}

        注意一下語法錯誤:

        export 1; 
        var a = 100;
        export a;

        export在導出接口的時候,必須與模塊內部的變量具有一一對應的關系。直接導出1沒有任何意義,也不可能在import的時候有一個變量與之對應export a雖然看上去成立,但是a的值是一個數(shù)字,根本無法完成解構,因此必須寫成export {a}的形式。即使a被賦值為一個函數(shù),也是不建議使用上面的形式導出的因為大部分風格都建議,模塊中最好在末尾用一個export導出所有的接口,就像上面那些例子一樣。

        默認導出

        默認導出也被稱做定義式導出。命名式導出可以導出多個值,但在import引用時,也要使用相同的名稱來引用相應的值。默認導出只有導出一個單一值,這個輸出可以是一個函數(shù)、類或其它類型的值,這樣在模塊import導入時也會更 容易引用。

        export default function() {}; // 導出一個函數(shù)
        export default class(){}; // 導出一個類

        默認導出可以理解為另一種形式的命名導出,默認導出可以認為是使用了default名稱的命名導出。

        下面兩種導出方式是等價的:

        const D = 123; 
        export default D;
        export { D as default };

        使用名稱導出一個模塊時:

        // "my-module.js" 模塊
        function cube(x) {
         return x * x * x;
        }
        const foo = Math.PI + Math.SQRT2;
        export { cube, foo };

        在另一個模塊(js文件)中,我們可以像下面這樣引用:

        import { cube, foo } from 'my-module';
        console.log(cube(3));
        console.log(foo);

        使用默認導出一個模塊時:

        // "my-module.js"模塊
        export default function (x) {
        return x * x * x;
        }

        在另一個模塊中,我們可以像下面這樣引用,相對名稱導出來說使用更為簡單:

        import cube from 'my-module';
        console.log(cube(3)); // 27

        import導入模塊

        import語法聲明用于從已導出的模塊、腳本中導入函數(shù)、對象、指定文件(或模塊)的原始值。import模塊導入與export模塊導出功能相對應,也存在兩種模塊導入方式:命名式導入(名稱導入)和默認導入(定義式導入)。

        注意事項: import必須放在文件的最開始,且前面不允許有其他邏輯代碼,這和其他所有編程語言的導入風格一致。

        命名導入

        我們可以通過指定名稱將導入成員插入到當作用域中。可以導入單個成員或多個成員:

        注意,花括號里面的變量與export后面的變量一一對應

        import {myMember} from "my-module";
        import {foo, bar} from "my-module";

        通過*符號,我們可以導入模塊中的全部屬性和方法。當導入模塊全部導出內容時,就是將導出模塊(’my-module.js’)所有的導出綁定內容,插入到當前模塊(’myModule’)的作用域中:

        import * as myModule from "my-module";

        默認導入

        在模塊導出時,可能會存在默認導出。同樣的,在導入時可以使用import指令導入這些默認值。直接導入默認值:

        import defaultName from "my-module";
        import myDefault, {foo, bar} from "my-module"; // 指定成員導入和默認導入

        default關鍵字

        // my-module.js
        export default function() {}
         
        // 等效于:
        function func() {};
        export {func as default};

        在import的時候,可以這樣用:

        import a from './my-module';
         
        // 等效于,或者說就是下面這種寫法的簡寫
        import {default as a} from './my-module';

        這個語法糖的好處就是import的時候,可以省去{}。

        簡單的說,如果import的時候,你發(fā)現(xiàn)某個變量沒有花括號括起來(沒有*號),那么你在腦海中應該把它還原成有花括號的{default as ...}語法,所以import $,{each,map} from 'jquery';import后面第一個$是{default as $}的替代寫法。

        聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScriptmodule導出和導入的介紹(詳解)

        JavaScriptmodule導出和導入的介紹(詳解):本篇文章給大家?guī)淼膬热菔顷P于JavaScript module導出和導入的介紹(詳解),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。最近看了些Vue框架寫的程序,發(fā)現(xiàn)自己的前端知識還停留在幾年以前,發(fā)現(xiàn)現(xiàn)在Javascript程序里有各種各樣的對
        推薦度:
        標簽: 導出 導入 介紹
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 三年片在线观看免费大全 | 久久亚洲国产成人精品无码区| 亚洲1区1区3区4区产品乱码芒果| 一级毛片在线观看免费| 亚洲精品高清国产一久久| 三年片在线观看免费大全电影 | 国产亚洲视频在线播放大全| 免费无码一区二区三区蜜桃大| 狠狠色伊人亚洲综合网站色| 成人免费看吃奶视频网站| 午夜在线a亚洲v天堂网2019| 四虎成人免费网址在线| 国产成人综合亚洲| 国产亚洲大尺度无码无码专线| 亚洲第一视频在线观看免费| 亚洲AV永久纯肉无码精品动漫| 99热这里有免费国产精品| 亚洲一区二区三区不卡在线播放| 四虎免费在线观看| 成人精品综合免费视频| 亚洲熟妇av一区二区三区| 四虎影视成人永久免费观看视频| 男人天堂2018亚洲男人天堂| 国产高清免费的视频| 2022国内精品免费福利视频| 亚洲一区二区三区夜色| 日本一区二区三区免费高清| 色噜噜狠狠色综合免费视频| 亚洲国产a∨无码中文777| 中文字幕无码不卡免费视频| 猫咪www免费人成网站| 亚洲AV福利天堂一区二区三| 最近的中文字幕大全免费版| 一级毛片免费在线| 亚洲视频国产精品| 免费国产精品视频| 在线免费观看国产| 成年免费a级毛片| 亚洲乱码中文字幕小综合| 亚洲福利精品电影在线观看| 18级成人毛片免费观看|