溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript中export指的是什么意思

發布時間:2022-01-13 09:42:00 來源:億速云 閱讀:266 作者:小新 欄目:web開發

這篇文章主要介紹了javascript中export指的是什么意思,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

在JavaScript中,export的意思是“導出”;JavaScript中模塊內的所有聲明都是本地的,利用export關鍵字可以導出模塊,該命令可以出現在模塊的任何位置,導出模塊后其他JS文件就可以通過import命令加載該模塊。

本教程操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。

javascript中export的意思是什么

默認情況下,JavaScript中在模塊內的所有聲明都是本地的,外部無法訪問。如果需要公開模塊中部分聲明的內容,并讓其它模塊加以使用,這個時候就需要導出功能,最簡單的方式是添加export關鍵字導出模塊。

可以導出的內容包括類、函數以及var、let和const修飾的變量。export命令可以出現在模塊的任何位置,只要處于模塊頂層就可以。如果處于塊級作用域內,就會報錯,import命令也是如此。

使用export命令定義了模塊的對外接口以后,其他 JS 文件就可以通過import命令加載這個模塊。

import命令具有提升效果,會提升到整個模塊的頭部,首先執行。由于import是靜態執行,所以不能使用表達式和變量,這些只有在運行時才能得到結果的語法結構。

一、default導入導出 default import/export

每個模塊僅有一個default的導出,導出內容可以是一個function、class,object等。因為這種方式被當做主要的導出內容,導入方式最為簡單。

// there is no semi-colon here
export default function() {} 
export default class {}
//示例
class A extends Component{
   ...
}
export default A;
//對應的import示例。
import A from './requireTest'
//default export, 輸入 lodash 模塊
import _ from 'lodash';
//一條import語句中,同時輸入默認方法和其他變量
import _, { each } from 'lodash';
//上述代碼對應的export語句
export default function (obj) {
  // ···
}
export function each(obj, iterator, context) {
  // ···
}
export { each as forEach };

注意:一個模塊僅僅只允許導出一個default對象,實際導出的是一個default命名的變量進行重命名,等價語句如下。所以import后可以是任意變量名稱,且不需要{}。

import any from './requireTest'
import {default as any } from './requireTest'

二、named 導入導出

需要特別注意的是,export命令規定的是對外的接口,必須與模塊內部的變量建立一一對應關系。另外,export語句輸出的接口,與其對應的值是動態綁定關系,即通過該接口,可以取到模塊內部實時的值。

import命令接受一對大括號,里面指定要從其他模塊導入的變量名。大括號里面的變量名,必須與被導入模塊(profile.js)對外接口的名稱相同。如果想為輸入的變量重新取一個名字,import命令要使用as關鍵字,將輸入的變量重命名。

import后面的from指定模塊文件的位置,可以是相對路徑,也可以是絕對路徑,.js路徑可以省略。如果只是模塊名,不帶有路徑,那么必須有配置文件,告訴 JavaScript 引擎該模塊的位置。

// profile.js
//第一種export
export var firstName = 'Michael';
export function f() {};
//第二種export,優先使用這種寫法
var firstName = 'Michael';
export {firstName};
function f() {}
export {f};
//main.js
import { firstName, f } from './profile';
import { firstName as surname } from './profile';

三、重命名導入導出

export { myFunction }; // exports a function declared earlier
export const foo = Math.sqrt(2); // exports a constant

import不同模塊的導出內容時,必須保持命名的唯一性。此時可以用重命名來解決,包括以下兩類。

//導出的時候重命名
function v1() { ... }
function v2() { ... }
export {
      v1 as streamV1,
      v2 as streamV2,
      v2 as streamLatestVersion  //可以用兩個不同的名稱導出相同的值
};
//導入的時候重命名
// 這兩個模塊都會導出以`flip`命名的東西。同時導入兩者,需要將其中一個的名稱改掉。
import {flip as flipOmelet} from "eggs.js";
import {flip as flipHouse} from "real-estate.js";

四、export和import的復合寫法

如果在一個模塊之中,先輸入后輸出同一個模塊,import語句可以與export語句寫在一起。

export { foo, bar } from 'my_module';
// 等同于
import { foo, bar } from 'my_module';
export { foo, bar };

感謝你能夠認真閱讀完這篇文章,希望小編分享的“javascript中export指的是什么意思”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女