這篇文章將為大家詳細講解有關如何在JavaScript中導入導出 module,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

目前成都創(chuàng)新互聯(lián)公司已為超過千家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)絡空間、網(wǎng)站運營、企業(yè)網(wǎng)站設計、薩爾圖網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
JavaScript是一種直譯式的腳本語言,其解釋器被稱為JavaScript引擎,是瀏覽器的一部分,JavaScript是被廣泛用于客戶端的腳本語言,最早是在HTML網(wǎng)頁上使用,用來給HTML網(wǎng)頁增加動態(tài)功能。
ES6在語言標準的層面上,實現(xiàn)了模塊功能,成為瀏覽器和服務器通用的模塊解決方案,完全可以取代 CommonJS 和 AMD 規(guī)范,基本特點如下:
每一個模塊只加載一次, 每一個JS只執(zhí)行一次, 如果下次再去加載同目錄下同文件,直接從內(nèi)存中讀取;
每一個模塊內(nèi)聲明的變量都是局部變量, 不會污染全局作用域;
模塊內(nèi)部的變量或者函數(shù)可以通過export導出;
一個模塊可以導入別的模塊
2.模塊功能主要由兩個命令構(gòu)成:export和import。export命令用于規(guī)定模塊的對外接口,import命令用于輸入其他模塊提供的功能;
3.一個模塊就是一個獨立的文件,該文件內(nèi)部的所有變量,外部無法獲取。如果你希望外部能夠讀取模塊內(nèi)部的某個變量,就必須使用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在導出接口的時候,必須與模塊內(nèi)部的變量具有一一對應的關系。直接導出1沒有任何意義,也不可能在import的時候有一個變量與之對應export a雖然看上去成立,但是a的值是一個數(shù)字,根本無法完成解構(gòu),因此必須寫成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";通過*符號,我們可以導入模塊中的全部屬性和方法。當導入模塊全部導出內(nèi)容時,就是將導出模塊('my-module.js')所有的導出綁定內(nèi)容,插入到當前模塊('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';關于如何在JavaScript中導入導出 module就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
本文名稱:如何在JavaScript中導入導出module
轉(zhuǎn)載源于:http://chinadenli.net/article46/jpeohg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、微信小程序、微信公眾號、網(wǎng)站改版、移動網(wǎng)站建設、自適應網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)