es6 匯入匯出

2022-06-11 03:57:09 字數 4400 閱讀 7662

1.命名匯出

命名匯出就是明確匯出的變數名稱和值。

在src目錄下建立math.js,index.js檔案。

math.js內容:

//case 1: export後面跟變數輸出宣告語句

export var pi = 3.14;

//case 2: export後面直接跟變數定義語句

export var add = function (x, y)

這表示math.js模組匯出變數pi和add, 用nodejs的模組格式可表示為:

var pi = 3.14;

var add = function (x, y)

module.exports.pi =pi;

module.exports.add =add;

index.js內容:

import * as math from "./math.js"; //

import是匯入模組,後面會說。

console.log(math.pi);

console.log(math.add(1, 2));

然後執行下面的命令進行babel轉換:

npm run build

如果沒有報錯的化,那module目錄下應該生成了dist子目錄,並且生成了index.js和math.js檔案(先不要在意檔案的內容)。

然後在執行命令:

node dist/index.js

看看輸出結果是否ok:

3.14

3如果匯出多個變數,可以採用簡寫格式(調整math.js內容):

var pi = 3.14;

var add = function

(x, y)

export ;

//簡寫格式,統一列出需要輸出的變數

重複上述步驟中執行npm和node命令檢視看輸出結果是否ok。

並且該簡寫格式還可以對輸出的變數重新命名,之前的都是模組裡宣告的變數名作為模組匯出的變數的名:

再次修改math.js

var pi = 3.14;

var add = function

(x, y)

export ;

//把輸出變數add重新命名為add(注意不用雙引號)

通過關鍵字as把輸出變數add重新命名為add,注意add是個字面量,不是字串不需要引號。同樣在匯入math.js模組的index.js模組也要修改下:

import * as math from "./math.js";

console.log(math.pi);

console.log(math.add(1, 2)); //

add方法名稱改動了。

命名匯出需要同時制定匯出的變數名稱和變數值,所以export語句後面跟的一般是變數輸出宣告語句塊,變數定義語句,不可以是表示式,因為表示式只有值,沒有名字。

2. 預設匯出

通過關鍵字default修飾export可以指定乙個模組的預設輸出變數值(在匯入模組的預設輸出時,不需要指定匯出變數名稱,這個後面再說)。

//case 3 常量

export default 25;

//case 4 變數

var pi = 3.14;

export

default

pi //

case 5 函式

export default

function

add2( x, y)

注意 乙個模組最多只能有乙個預設匯出;

預設輸出可以視為名字是"default"的模組輸出變數;

預設匯出後面可以是表示式,因為它只需要值;

export語句必須在模組作用域的最頂層,即export不可以出現在任意花括號內,如函式語句裡,子**塊裡(控制語句)。

四、模組匯入

通過import語句匯入外部模組。對應export語句的兩種匯出方式(命名模組匯出和預設模組匯出),import也分別存在兩種不同的模組匯入語法格式。

1. 匯入模組的命名輸出變數

修改index.js:

import from './math.js';

console.log(pi);

console.log(add(1, 2));

表示:匯入math.js模組裡輸出的變數pi, add,注意名稱必須要和math.js模組的輸出變數一一對應,否則就是undefined。

重新執行npm和node命令看看輸出是否ok。

該格式還支援對匯入的變數重新命名:

import from './math.js';

如果匯入乙個模組所有命名輸出,可採用萬用字元"*:

修改index.js:

import * as math from './math.js'; // 此時必須通過as指定個別名

console.log(math.pi);

console.log(math.add(1, 2));

表示匯入模組math.js所有命名輸出變數,並通過math變數引用。

2. 匯入模組的預設輸出

修改math.js:

var pi = 3.14;

var add = function (x, y)

export ; // 簡寫格式,統一列出需要輸出的變數

export default function say()

修改index.js:

import say from "./math.js"; //say();

表示匯入模組math.js的預設輸出,此時不可以用as重新命名哦(因為名字可以任意定義)。

執行命令檢視輸出是否ok。

匯入模組預設輸出的名字可以任意命名。

import say2 from "./math.js"; //

say2();

如果同時匯入模組的命名輸出和預設輸出,可採用格式:

import say, * as math from './math.js';

//or

import say, from './math.js';

有個限制條件預設匯入一定放在命名匯入前面,即不能寫成:

import * as math, say from './math.js';

//or

import , say from './math.js';

同樣import語句也必須在模組的最頂層作用域裡,即import不可以出現在任意花括號內,如函式語句裡,子**塊裡(控制語句)。

3. 只匯入

如果只匯入乙個模組,但不引用模組的輸出變數,可以簡寫為:

import './math.js'此時只會出發模組math.js的執行。

五、修改匯入/匯出的變數值

1. 修改匯入的變數值

模組可以匯出任何型別變數(引用變數和值變數),如果在模組index.js裡修改了模組math.js匯出的引用變數或者值變數,那會影響模組math.js裡的值麼?

修改math.js:

var pi = 3.14;

var person =

export ;

export

default

function

say() , pi:$`)

}修改index.js:

import say, * as math from './math.js';

say();

//修改前

math.person = 12;

math.pi = 0;

say();

//修改後

執行npm和node檢視輸出:

clipboard.png

從輸出可以看出雖然我們在index.js模組裡修改了math.js模組的匯出變數,但並不會影響math.js裡的值。

2. 修改匯出的變數值

反過來想想,如果模組math.js修改了其匯出的引用變數或者值變數在,那會影響模組index.js裡的取值麼?

修改math.js:

var count = 0;

var increase = function

() var person =

var changename = function

() export ;

修改index.js:

import say, * as math from './math.js';

console.log(`person:$, count:$`);

//修改前

math.increase();

math.changename();

console.log(`person:$, count:$`);

//修改後

輸出:clipboard.png

從輸出可以看出只要math.js修改了匯出值就會影響index.js的取值。

es6模組匯入匯出

如何在 webpack 構建的專案中,使用 vue 進行開發 複習 在普通網頁中如何使用vue 1.使用 script 標籤 引入 vue 的包 3.通過 new vue 得到乙個 vm 的例項 在webpack 中嘗試使用 vue 注意 在 webpack 中,使用 import vue from...

ES6 函式拓展 類 匯入匯出

上次介紹了es6的最基本的一些點,今天稍微深入一點,談談函式和類 函式拓展 我們知道,之前es5的時候 函式的預設值問題,要寫 判斷是否為空去實現 而現在 es6解決了這一問題 說實話 越來越發現了es6的強大 箭頭函式 上面大家也看到了 按照順序來說 算是超綱啦 不過 帶著疑問去學習是件好事呀 有...

ES6中如何匯入與匯出模組

匯出 export 可以用export關鍵字將內容給其他模組,在最簡單的例子中,可以將export放在任何變數 函式或類宣告的前面,以將它們從模組中匯出。usemodule.js如下 兩種匯出形式的區別 1 預設形式 不用加任何修飾 2 自定義 匯出的內容需要加 匯出變數 export var st...