红菊直播官方版-红菊直播免费版app下载-红菊直播永久免费版下载

網(wǎng)站首頁
手機(jī)版

前端JavaScript 前端JavaScript忘記密碼

更新時(shí)間:2024-03-29 13:13作者:小樂

我讀過很多關(guān)于這個(gè)主題的文章,但其中很多都不清楚,而且我總是抓住要點(diǎn)。下面我們就來總結(jié)一下,免得大家再困惑。最初,JavaScript 無法導(dǎo)入/導(dǎo)出模塊。這是一個(gè)大問題。想象一下如果要求您將所有代碼寫入一個(gè)文件中會發(fā)生什么。你愿意維護(hù)它嗎?然后一些天才想到了一種不同的方法將模塊系統(tǒng)引入JavaScript。最著名的是這些,CJS、AMD、UMD、ESM。我們從語法、用途和基本行為這幾個(gè)方面一一介紹一下。 CJSCJS 是CommonJS 的縮寫。如下圖所示:

如果你使用過Node.js,你應(yīng)該熟悉這個(gè)語法。它是Node.js 的模塊系統(tǒng)。 CJS同步導(dǎo)入模塊。您可以從文件或node_modules 導(dǎo)入模塊。以下兩者都可以使用CJS 導(dǎo)入。它將為您提供導(dǎo)入對象的副本。 CJS不被瀏覽器支持,只能在后端使用。如果要在前端使用,必須先編譯打包。 AMDAMD 是異步模塊定義的縮寫。示例代碼如下:

或者

AMD 以異步方式引入模塊。 AMD是為前端而設(shè)計(jì)的。語法不如CJS 直觀。 UMDUMD 是通用模塊定義的縮寫。示例代碼如下:

UMD可以在前端和后端工作。 (我猜這就是Universal、通用的由來)UMD更像是一種配置多模塊系統(tǒng)的模式。 UMD通常用于打包工具打包后的代碼實(shí)現(xiàn),例如Rollup/Webpack等。ESMESM代表EcmaScript Module。它是JavaScript規(guī)范提出的最新模塊系統(tǒng)。您一定見過類似這樣的代碼:

現(xiàn)代瀏覽器本身就支持ESM。它具有簡單的語法(如CJS)并且是異步導(dǎo)入的(如AMD)。它具有兩者的共同優(yōu)點(diǎn)。由于ES6的靜態(tài)模塊結(jié)構(gòu),它可以進(jìn)行tree-shakeable。那些打包工具,比如Rollup,可以幫助你刪除無用的代碼,這樣你就可以獲得更精簡的構(gòu)建,從而提高性能。也可以用在HTML 中,總結(jié)如下

ESM是最好的模塊系統(tǒng)。它具有簡單的語法,本質(zhì)上是異步的,并且可以用作Tree-shakeableUMD 前端和后端。它可以用作不支持ESM 環(huán)境的替代系統(tǒng)。 CJS是同步的,可以在后端使用。 AMD是異步的,可以用在前端。

為您推薦

UMD團(tuán)隊(duì)打造可玩《超級馬力歐兄弟》的氣動(dòng)軟機(jī)械手

馬里蘭大學(xué)的一支研究團(tuán)隊(duì),剛剛在《科學(xué)進(jìn)展》期刊上介紹了他們新研發(fā)的一款氣動(dòng)軟機(jī)械手,特點(diǎn)是靈活到能夠玩《超級馬力歐兄弟》。與機(jī)械結(jié)構(gòu)更加復(fù)雜的機(jī)械手方案相比,這種新式氣動(dòng)手要簡單得多。因?yàn)閭鹘y(tǒng)電子機(jī)械手必須將單獨(dú)的控制線路遍布每個(gè)手指,結(jié)

2024-03-29 13:00

Javascript 中的 CJS、AMD、UMD 和 ESM 是什么?

一開始,Javascript 沒有辦法導(dǎo)入/導(dǎo)出模塊。這是個(gè)問題。想象一下,在一個(gè)文件中編寫您的應(yīng)用程序 - 這將是一場噩夢!然后,比我聰明得多的人試圖為 Javascript 添加模塊化。其中一些是CJS、AMD、UMD 和 ESM。您可

2024-03-29 12:47

美國最新油電混動(dòng)軍車,和比亞迪唐的模式幾乎一致,美國油電混合車型推薦

這款ULV最大亮點(diǎn)就是采用了油電混和驅(qū)動(dòng)系統(tǒng)。(ULV的研發(fā)機(jī)構(gòu),主要承擔(dān)美軍單兵作戰(zhàn)系統(tǒng)以及新材料軍用化的研發(fā)任務(wù)。)就在搭載超級電四驅(qū)技術(shù)的比亞迪混動(dòng)車唐上市后,美國陸軍開始對ULV(Ultra Light Vehicle)油電混動(dòng)軍車

2024-03-29 12:33

拉文大學(xué)相當(dāng)于中國什么等級的大學(xué)?(拉文大學(xué)mba)

拉文大學(xué) (University of La Verne)簡稱ULV。創(chuàng)立于1891年,是美國西部最古老的國家級大學(xué)之一,建校超過125周年。其前身是教會創(chuàng)立的洛茲伯格學(xué)院。1917年洛茲伯格農(nóng)業(yè)社區(qū)更名為拉文,學(xué)院也隨之成為拉文學(xué)院。學(xué)校

2024-03-29 12:27

印度欲制造超過長征五號的大火箭,還在搞太空軍事化(印度重型火箭)

印度一直有個(gè)大國夢,在各個(gè)領(lǐng)域都希望能出人頭地,雖然實(shí)際效果不一定像他們想象的那么美好。但是印度的航天水平確實(shí)是比較領(lǐng)先的,比很多發(fā)達(dá)國家的水平還要強(qiáng)。如果說美國、歐空局、中國、俄羅斯、日本是航天綜合實(shí)力前五名的話,印度是當(dāng)之無愧的第六名,

2024-03-29 12:12

美國的ULV,俄羅斯的GAZ,這些軍用越野車,每輛都讓人熱血沸騰!,俄羅斯最新軍用越野車

今天我們來說點(diǎn)不一樣的,越野車大家都司空見慣,但軍用越野車相信各位都很陌生吧,它們只為部隊(duì)服務(wù),很少出現(xiàn)在大眾視野,但各個(gè)性能不俗隨便來一輛都能秒殺牧馬人、普拉多、猛禽等熱門越野車,今天就讓我們看看全球各式各樣的軍用越野車。美國:ULV這輛

2024-03-29 11:57

加載中...