export和export default的區別

2021-12-27 小何成長
一、概述

在 ES6 之前,社區制定了一些模塊加載方案,最主要的有 CommonJS 和 AMD 兩種。前者用於伺服器,後者用於瀏覽器。ES6 在語言標準的層面上,實現了模塊功能,而且實現得相當簡單,完全可以取代 CommonJS 和 AMD 規範,成為瀏覽器和伺服器通用的模塊解決方案。

ES6中,在JavaScript ES6中,export與export default均可用於導出常量、函數、文件、模塊等。

二、export命令

模塊功能主要由兩個命令構成:export和import。export命令用於規定模塊的對外接口,import命令用於輸入其他模塊提供的功能。

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

下面是一個js文件,裡面使用export命令來輸出變量,函數或類(class)

//a.js
export var str = "export的內容";
export var year =2019;
export function message(sth) {
return sth;
}

除了上述的寫法,還有一種推薦使用的,因為這樣就可以在腳本尾部,一眼看清楚輸出了哪些變量。

//a.js
var str = "export的內容";
var year =2019;
function message(sth) {
return sth;
}
export {str,year,message}

通常情況下,export輸出的變量就是本來的名字,但是可以使用as關鍵字重命名。

//a.js
var str = "export的內容";
var year =2019;
function message(sth) {
return sth;
}
export {
str as newname1,
year as newname2,
message as newname3
};

上面代碼使用as關鍵字,重命名了變量str和year,以及函數message的對外接口。

三、import命令

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

//b.js
import { str,year, message } from './a';
//也可以分開寫兩次,導入的時候帶花括號,將每個變量函數名寫清楚

上面代碼的import命令,用於加載a.js文件,引入後便可以在b.js文件中使用a.js文件中的變量、函數或類等。import命令接受一對大括號,裡面指定要從其他模塊導入的變量名。大括號裡面的變量名,必須與被導入模塊(a.js)對外接口的名稱相同。

如果想為輸入的變量重新取一個名字,import命令要使用as關鍵字,將輸入的變量重命名。

//b.js
import { str as newname1,
year as newname2,
message as newname3
} from './a';

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

//import引入一個依賴包,不需要相對路徑。
import axios from 『axios』;
//import 引入一個自己寫的js文件,是需要相對路徑的。
import AppService from 『./appService』;

四、export default 命令

export default命令用於指定模塊的默認輸出。顯然,一個模塊只能有一個默認輸出,因此export default命令只能使用一次。所以,import命令後面才不用加大括號,因為只可能唯一對應export default命令。一個文件內不能有多個export default。

//a.js
const str = "export default的內容";
export default str
在另一個文件中的導入方式:
//b.js
import StrFile from 'a';
//導入的時候沒有花括號
//本質上,a.js文件的export default輸出一個叫做default的變量,然後系統允許你引入的時候為它取任意名字。

五、簡述區別

export與export default均可用於導出常量、函數、文件、模塊等

在一個文件或模塊中,export、import可以有多個,export default僅有一個

通過export方式導出,在導入時要加{ },export default則不需要,並可以起任意名稱

公眾號:小何成長,佛系更文,都是自己曾經踩過的坑或者是學到的東西

有興趣的小夥伴歡迎關注我哦,我是:何小玍。 大家一起進步鴨

相關焦點

  • exports、module.exports和export、export default 到底是咋回事
    比如 export 和 exportdefault,還有 導入的時候, importafrom.., import{a}from..,總之也有點亂,那麼下面我們就開始把它們捋清楚吧。export 和 export default首先我們講這兩個導出,下面我們講講它們的區別export與export default均可用於導出常量、函數、文件、模塊等在一個文件或模塊中,export、import可以有多個,export default僅有一個通過export方式導出,在導入時要加
  • 詳解 JavaScript 中的模塊、Import和Export
    ECMAScript 2015 規範在 JavaScript 語言中引入了 module,也有了 import 和 export 語句。在本文中,我們一起來學習 JavaScript 模塊,以及怎樣用 import 和 export 來組織代碼。
  • Docker的save和export命令的區別
    鏡像類似於已經包含了文件、配置和安裝好的程序的虛擬機鏡像。同樣的,你可以像啟動虛擬機一樣啟動多個鏡像實例。運行中的鏡像稱為容器。你可以修改容器(比如刪除一個文件),但這些修改不會影響到鏡像。不過,你使用 docker commit <container-id> <image-name> 命令可以把一個正在運行的容器變成一個新的鏡像。
  • Linux中export使用
    微信公眾號:ai-ai360如果你覺得這篇文章對你有幫助,歡迎點讚和轉發[1]內容目錄背景export作用:  查看和設置Shell環境變量。查看環境變量export/set/env/declare 的區別設置shell環境變量export使用威力export 用法總結回答開篇問題下篇預告背景最近在跑一個語音識別開源項目。
  • 【第1138期】import、require、export、module.exports 混合詳解
    正文從這開始~自從使用了 es6 的模塊系統後,各種地方愉快地使用 import export default,但也會在老項目中看到使用commonjs規範的 requiremodule.exports。甚至有時候也會常常看到兩者互用的場景。使用沒有問題,但其中的關聯與區別不得其解,使用起來也糊裡糊塗。
  • 我們來徹底搞清楚javascript中的require、import和export
    在CommonJS中,暴露模塊使用module.exports和exports,很多人不明白暴露對象為什麼會有兩個,後面會介紹區別在CommonJS中,有一個全局性方法require(),用於加載模塊。假定有一個數學模塊math.js,就可以像下面這樣加載。
  • es6模塊--module的使用 模塊核心原理:(import)導入,(export)導出
    這個錯誤是指瀏覽器服務跨域的問題,解決這個錯誤的辦法可以使用nodejs或者其他語言開啟一個伺服器,在伺服器中打開,如果你使用的是VScode編輯器,可以安裝 live server 插件,然後點擊 open with live server 打開,編輯器會自動在一個伺服器上打開export 導出方式1.直接導出定義的變量,函數,類 (導出的變量名必須和導入的名字對應
  • Django數據導入導出神器django-import-export使用
    max_length=100)    author = models.ForeignKey(Author, blank=True, null=True)    author_email = models.EmailField('Author email', max_length=75, blank=True)    imported = models.BooleanField(default
  • MongoDB備份(mongoexport)與恢復(mongoimport)
    1.備份恢復工具介紹:mongodump/mongorestore(本文未涉及)2.備份工具區別在哪裡?2.5mongoexport不支持普通導出單個db的所有的collectionmongodump支持普通導出單個db的所有的collection3.應用場景總結:mongoexport/mongoimport1、異構平臺遷移  mysql  <---> mongodb2、同平臺,跨大版本:mongodb2.x --->
  • How To Export Sights Videos Out Of WeChat
    The options for sights within WeChat chat threads are restricted to 2 options: forward orfavorite with no option to export them out of WeChat.
  • 每天一個 Linux 命令(77): export 命令
    export 命令為 Shell 內建命令,用於設置或顯示環境變量,環境變量包含變量與函數。在 Shell 中執行程序時,Shell 會提供一組環境變量。export 可新增、刪除或修改環境變量,供後續被執行的程序使用。export 的作用效果僅限於當前登錄。
  • The export of non-medical masks is in the strict investigation!
    4月25日,商務部會同海關總署和國家市場監督管理總局,三部門聯合發布《2020年第12號公告》,緊急宣布進一步加強防疫物資出口質量監管,加強非醫用口罩出口質量監管,自4月26日起,出口的非醫用口罩應當符合中國質量標準或國外質量標準。
  • require和import的區別
    前言這個問題也可以變為 commonjs模塊和ES6模塊的區別;先來一道面試題測驗一下:下面代碼輸出什麼// base.jsvar count = 0;setTimeoutexport default 命令export default就是輸出一個叫做default的變量或方法export default 所以它後面不能跟變量聲明語句本質上,export default就是輸出一個叫做default的變量或方法,然後系統允許你為它取任意名字。
  • Linux入門進階 - 如何在Linux中使用export命令
    Linux export命令會標記哪些值需要傳遞給一組子進程。幸運的是,export命令使用起來非常簡單,易於掌握。在本指南中,我們將建議新手如何在Linux中使用export。您可以以多種方式使用export。一個常見的例子是使用export來設置用戶環境。用戶可以簡單地使用export指定變量並將它們添加到他們的.profile文件中。因此,每次用戶登錄時,環境都將按照這種方式配置。
  • 有了它-export,再也不用擔心刪庫了
    :XtraDB or InnoDB 備份帳號權限:RELOAD and LOCK TABLESREPLICATION CLIENTPROCESSSUPER 工具介紹這就是著名的percona xtrabackup工具,該工具除了可以全量備份和增量備份
  • Wanna Export Masks from China? You need to ensure these !
    隨著疫情在世界範圍內的迅速傳播,全球社會正面臨面罩,紅外測溫儀和危險品防護服、呼吸機等醫療用品短缺的問題。另外,近期有報導指出一些國家反映中國生產的防疫用品品質欠佳,並對所購買的醫療產品進行了退回,這對中國醫療用品出口條件有了更嚴格的要求。如果你想了解如何從中國出口口罩等醫療用品以及需要什麼文件,讓我來告訴你!
  • Compliance under Act of Export Control
    The legislature of China has lately adopted an act regarding export
  • Django數據導入導出神器django-import-export使用教程
    顧名思義,django-import-export是一個用於處理導入和導出數據的庫。
  • linux命令(export,dpkg,git diff,git status,echo,apt)
    export命令用於設置或顯示環境變量在 shell 中執行程序時,shell 會提供一組環境變量。
  • 加納巧克力、腰果出口潛力/​Export Potentials For Chocolate Cashew Identified
    2019年,美國和中國的巧克力出口總額分別為16.6億美元和3.31億美元。中國最大的出口目的地是香港(22.1%),而美國的目的地市場則是加拿大(37.7%)、墨西哥(13.2%)等國。雖然該產品對越南和印度的進口總值分別為170萬和93.3萬美元,但加納在這兩個國家的份額分別只有15.2%和14%。然而,其周邊區域國家即貝寧和象牙海岸佔有比加納更顯著的份額。"探索你在越南和印度的現有可能性,因為從加納進口到這些市場的市場份額有增長空間。報告指出。