日韩性视频-久久久蜜桃-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概述及使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产又粗又猛视频免费 | 一道本在线视频 | 中文一区视频 | 亚洲特黄一级片 | 国产亚洲精 | 亚洲剧情在线 | 禁欲天堂 | 99久久99久久精品国产片 | 饥渴丰满的少妇喷潮 | 国产精品va | 中文字幕在线网 | 99在线免费视频 | 嫩草影院在线免费观看 | 91精品视频一区 | 色香蕉视频 | 激情小说五月天 | 草草在线视频 | 美女被猛网站 | 国产极品视频在线观看 | 欧美一级免费看 | 欧美a网| 久草国产精品 | 亚洲精品一区二区口爆 | 国产一区二区精品在线 | 99热手机在线观看 | 偷拍一区二区三区四区 | 91在线国产观看 | 国产高清在线视频 | 婷婷综合在线观看 | 91麻豆精品在线 | 操色网 | 黄色av电影在线观看 | 91色吧| 色5月婷婷 | 97视频免费在线观看 | 僵尸叔叔在线观看国语高清免费观看 | 四虎网站| 深爱激情综合网 | 亚洲不卡影院 | 国产又粗又黄又爽的视频 | 成人一区二区免费视频 | 激情无码人妻又粗又大 | 欧美激情自拍 | 免费做a爰片77777 | 在线观看国产视频 | 伦理亚洲| 亚洲图片欧美视频 | 丁香色欲久久久久久综合网 | 操在线视频| 亚洲一区免费视频 | 日日噜噜噜噜久久久精品毛片 | 黄色国产一区 | 欧美1页 | 啪啪啪一区二区 | 麻豆精品一区二区三区 | 女人色极品影院 | 久久精品国产电影 | 亚洲精品视频免费 | 欧美三级理论片 | 亚洲国产精品99久久久久久久久 | 国产乱论 | 欧美日韩一卡二卡三卡 | 青青草网址 | 亚洲精品视 | 最新中文在线视频 | 伊人中文在线 | ,午夜性刺激免费看视频 | 国产女主播在线播放 | 亚洲av无码国产在丝袜线观看 | 天天添| 少妇色视频 | 日韩精品电影在线观看 | 夜夜免费视频 | 精品一二三| 国产九色在线播放九色 | 成人区人妻精品一区二区网站 | 天天综合人人 | 欧美va视频| 91看毛片| 国产麻豆精品久久一二三 | 欧美大肚乱孕交hd孕妇 | av一区二区不卡 | 亚洲老老头同性老头交j | 国产精品一区二区人妻喷水 | 欧美日韩在线不卡 | 久久天天干| 国产精品久线在线观看 | 欧美中文字幕 | 丰满人妻一区二区三区无码av | 欧美激情一区 | 白嫩白嫩国产精品 | 法国空姐电影在线观看 | 男人av网| 亚洲成熟丰满熟妇高潮xxxxx | 美女精品在线 | 在线播放的av | 日韩av在线播放网址 | 天天操天天添 | 97人妻精品一区二区 |