成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

初學(xué)Web前端要注意什么如何學(xué)好JS模塊化編程-創(chuàng)新互聯(lián)

初學(xué)Web前端要注意什么?如何學(xué)好JS模塊化編程?JavaScript是前端三要素之一,也是很多初學(xué)Web前端的人遭遇的第一條攔路虎。很多同學(xué)表示JavaScript涵蓋的知識點(diǎn)太多太復(fù)雜、應(yīng)用也是五花八門完全摸不著頭腦。但只要我們一點(diǎn)一點(diǎn)由基礎(chǔ)到進(jìn)階的學(xué)習(xí),就一定能學(xué)好JavaScript,接下來千鋒小編就給大家分享有關(guān)JavaScript模塊化編程的知識。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、鎮(zhèn)平ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的鎮(zhèn)平網(wǎng)站制作公司

初學(xué)Web前端要注意什么 如何學(xué)好JS模塊化編程

模塊是實(shí)現(xiàn)特定功能的一組方法,模塊化是一種規(guī)范、一種約束,這種約束會大大提升開發(fā)效率。JS模塊化思想是將每個(gè)JS文件看作是一個(gè)模塊,每個(gè)模塊通過固定的方式引入,并且通過固定的方式向外暴露指定的內(nèi)容。

模塊化需要實(shí)現(xiàn)的功能

1.解決命名沖突。當(dāng)代碼達(dá)到一定規(guī)模,功能很多的時(shí),命名沖突就會出現(xiàn),模塊化可以很好的解決命名沖突的問題。

2.實(shí)現(xiàn)依賴管理。當(dāng)一個(gè)頁面要加載多個(gè)JS并且他們之際有些還有依賴關(guān)系,這時(shí)候就需要慎重仔細(xì)的排列這些JS的順序,以保證每個(gè)組件都能正常運(yùn)行,而模塊化之后就不用為此多費(fèi)心思。

3.提高復(fù)用性和代碼可讀性。一個(gè)功能為一個(gè)模塊,每個(gè)模塊相互獨(dú)立,互不影響,代碼組件封裝可以重復(fù)利用,去除這個(gè)模塊不影響其它的。

JavaScript模塊化發(fā)展

閉包與命名空間

這是最容易想到的也是最簡便的解決方式,早在模塊化概念提出之前很多人就已經(jīng)使用閉包的方式來解決變量重名和污染問題。這樣每個(gè)JS文件都是使用IIFE包裹的,各個(gè)JS文件分別在不同的詞法作用域中,相互隔離,最后通過閉包的方式暴露變量。每個(gè)閉包都是單獨(dú)一個(gè)文件,每個(gè)文件仍然通過script標(biāo)簽的方式下載,標(biāo)簽的順序就是模塊的依賴關(guān)系。

面向?qū)ο箝_發(fā)

這種方法只是閉包方式的小改進(jìn),約束js文件返回必須是對象,對象其實(shí)就是一些個(gè)方法和屬性的集合。這樣的優(yōu)點(diǎn):1)規(guī)范化輸出,更加統(tǒng)一的便于相互依賴和引用;2)使用‘類’的方式開發(fā),便于后面的依賴進(jìn)行擴(kuò)展。本質(zhì)上這種方法只是對閉包方法的規(guī)范約束,并沒有做什么根本改動(dòng)。

YUI

雅虎出品的一個(gè)工具,模塊化管理只是一部分,其還具有JS壓縮、混淆、請求合并(合并資源需要server端配合)等性能優(yōu)化的工具,可謂是現(xiàn)有JS模塊化的鼻祖。通過YUI全局對象去管理不同模塊,所有模塊都只是對象上的不同屬性,相當(dāng)于是不同程序運(yùn)行在操作系統(tǒng)上。

CommonJs

2009年Nodejs發(fā)布,Commonjs發(fā)布之后,就成了Node里面標(biāo)準(zhǔn)的模塊化管理工具。同時(shí)Node還推出了npm包管理工具,npm平臺上的包均滿足Commonjs規(guī)范,隨著Node與npm的發(fā)展,Commonjs影響力也越來越大,并且促進(jìn)了后面模塊化工具的發(fā)展,具有里程碑意義的模塊化工具。

AMD和RequireJS

AMD是"Asynchronous Module Definition"的縮寫,意思就是"異步模塊定義"。它采用異步方式加載模塊,模塊的加載不影響它后面語句的運(yùn)行。所有依賴這個(gè)模塊的語句,都定義在一個(gè)回調(diào)函數(shù)中,等到所有依賴加載完成之后(前置依賴),這個(gè)回調(diào)函數(shù)才會運(yùn)行。

RequireJs是JS模塊化的工具框架,是AMD規(guī)范的具體實(shí)現(xiàn)。但是有意思的是,RequireJs誕生之后,推廣過程中產(chǎn)生的AMD規(guī)范。RequireJs的優(yōu)點(diǎn):1)動(dòng)態(tài)并行加載js,依賴前置,無需再考慮js加載順序問題;2)核心還是注入變量的沙箱編譯,解決模塊化問題;3)規(guī)范化輸入輸出,使用起來方便;4)對于不滿足AMD規(guī)范的文件可以很好地兼容。

CMD和SeaJs

CMD規(guī)范由國內(nèi)(阿里)誕生,借鑒了Commonjs的規(guī)范與AMD規(guī)范,在兩者基礎(chǔ)上做了改進(jìn)。特點(diǎn):1)define定義模塊、require加載模塊、exports暴露變量;2)不同于AMD的依賴前置,CMD推崇依賴就近(需要的時(shí)候再加載);3)推崇api功能單一,一個(gè)模塊干一件事。

SeaJs是CMD規(guī)范的實(shí)現(xiàn),跟RequireJs類似,CMD也是SeaJs推廣過程中誕生的規(guī)范。CMD借鑒了很多AMD和Commonjs優(yōu)點(diǎn),同樣SeaJs也對AMD和Commonjs做出了很多兼容。

ES6中的模塊化

ES6規(guī)范中終于將模塊化納入JavaScript標(biāo)準(zhǔn),從此JS模塊化被官方扶正,也是未來JS的標(biāo)準(zhǔn)。ES6中的模塊化在Commonjs的基礎(chǔ)上有所不同,增加了關(guān)鍵字import、export、default、as、from,而不是全局對象。二者有兩點(diǎn)主要的區(qū)別:1)CommonJS模塊輸出的是一個(gè)值的拷貝,ES6模塊輸出的是值的引用;2)CommonJS模塊是運(yùn)行時(shí)加載,ES6模塊是編譯時(shí)輸出接口。

想了解更多JavaScript模塊化知識點(diǎn),你可以選擇專業(yè)的學(xué)習(xí)。如果你想快速從基礎(chǔ)到高階、層層遞進(jìn)的掌握前端開發(fā)人員所需的技能,可以選擇專業(yè)的學(xué)習(xí),讓你高效率學(xué)習(xí)、畢業(yè)后輕松拿高薪!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享題目:初學(xué)Web前端要注意什么如何學(xué)好JS模塊化編程-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://jinyejixie.com/article40/diceho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、軟件開發(fā)網(wǎng)站設(shè)計(jì)、微信小程序、域名注冊、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
元朗区| 光泽县| 甘德县| 永嘉县| 丽江市| 吉木萨尔县| 丘北县| 手机| 波密县| 阜新市| 大安市| 左权县| 灌云县| 南开区| 南充市| 岳西县| 景洪市| 岑溪市| 鄂托克前旗| 灌云县| 新龙县| 东台市| 开江县| 东城区| 金门县| 郑州市| 巴楚县| 汤原县| 肇东市| 塔河县| 临汾市| 泌阳县| 驻马店市| 宣汉县| 富宁县| 武胜县| 广南县| 水富县| 巫溪县| 宁海县| 邢台县|