日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

CommonJS概述及使用

發布時間:2024/2/28 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CommonJS概述及使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在web開發中,我們的js文件都是在html文件中引入,在瀏覽器環境運行。但是在nodejs的環境中可沒有html文件,且nodejs中,有且只有一個入口文件index.js(在執行程序時,我們只運行這一文件),別的文件均作為模塊,配合入口文件實現代碼效果。因此可以看出,nodejs對模塊化開發的需求比瀏覽器端要大得多。

目錄

1.概述

2.模塊的導出

3.模塊的導入

4.CommonJS規范

5.nodejs對CommonJS的實現


1.概述

有了這一需求,且彼時nodejs剛剛發布,前端沒有官方的模塊化標準,因此大家選擇了社區提供的CommonJS作為模塊化標準。在這里有兩個非常重要的概念:模塊的導出模塊的導入

2.模塊的導出

先來解釋一下什么是模塊,所謂模塊其實本質上就是一個JS文件,該文件實現了一定的功能,并在隱藏自己內部實現的情況下,提供了一些接口給其他模塊使用。這里可以類比一些API,比如數組方法push,我們并不知道它內部怎么實現將元素放入數組的最后一項,可以認為這一部分被開發者隱藏了,但是我們可以使用它,即它暴露了接口給用戶。

由模塊的這一特性我們可以知道,模塊有兩個核心要素,即:隱藏暴露。模塊隱藏的是自己的內部實現,暴露的是希望外部使用的接口。舉個例子,我們將汽車生產場看作一個模塊,其產出的汽車是暴露給用戶的接口,而生產過程則是隱藏的內部實現,生產商只把產出的汽車賣給客戶,但是不會將生產過程告訴客戶。任何一個正常的模塊化標準,都應該默認隱藏模塊中的所有實現,而通過一些語法或API調用來暴露接口

暴露接口的過程即模塊的導出

模塊的導出

3.模塊的導入

當通過某種語法或API去使用一個模塊時,這個過程叫做模塊的導入,注意的是,在使用某一模塊時,我們使用的是該模塊導出的部分,隱藏的部分是永遠無法使用的。

4.CommonJS規范

CommonJS導出模塊的方法是exports,導入模塊的是require,具體規范如下

1)如果一個JS文件中存在exports或require,該JS文件是一個模塊

2)模塊內的所有代碼均為隱藏代碼,包括全局變量、全局函數,這些全局的內容均不應該對全局變量造成任何污染

3)如果一個模塊需要暴露一些API提供給外部使用,需要通過exports導出,exports是一個空的對象,你可以為該對象添加任何需要導出的內容

4)如果一個模塊需要導入其他模塊,通過require實現,require是一個函數,傳入模塊的路徑即可返回該模塊導出的整個內容

【注】CommonJS只是一個規范,相當于告訴你按什么標準制造汽車,但是具體怎么制造還是得看生產商。因此,有了規范以后,nodejs就去實現模塊化了

5.nodejs對CommonJS的實現

為了實現CommonJS規范,nodejs對模塊做出了以下處理

1)為了保證高效的執行,僅加載必要的模塊。nedejs只有執行到require函數時才會加載并執行模塊

2)為了隱藏模塊中的代碼,nodejs執行模塊函數時,會將模塊中的所有代碼放置到一個函數塊中執行,以保證不污染全局變量

3)為了保證順利的導出模塊的內容,nodejs做了以下處理

  • 在模塊開始執行前,初始化一個module.exports = {};
  • module.exports即模塊的導出值
  • 為了方便開發者便捷的導出,nodejs在初始化完module.exports后,又聲明了一個變量exports=module.exports?

4)為了避免反復加載同一個模塊,modejs默認開啟了模塊緩存,如果加載的模塊已經被加載過了,則會自動使用之前的導出結果

【注】CommonJS的概念如上,例子已上傳,一個是基本使用,另一個是模擬撲克牌發牌的過程

?

總結

以上是生活随笔為你收集整理的CommonJS概述及使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。