2018年你應(yīng)該知道的 15 個(gè) JavaScript 實(shí)用程序庫

15個(gè)有用的JavaScript實(shí)用程序庫,可加速您的前端開發(fā)。
2018年 JavaScript在仍然是?最受歡迎和最廣泛使用?的編程語言,圍繞它的生態(tài)社區(qū)也在不斷的完善和壯大。

盡管如此,JavaScript 的“標(biāo)準(zhǔn)庫”仍然會保持著這種蓬勃發(fā)展的狀態(tài)。 為填補(bǔ)這一空白,許多流行的實(shí)用程序庫在過去幾年中在GitHub上發(fā)展壯大。
以下是有用的且經(jīng)常維護(hù)的庫的列表推薦給大家:
Underscore & Lodash (dah)
大多數(shù)人可能已經(jīng)知道了這兩個(gè)庫。 Underscore 是構(gòu)建 JavaScript 中常見任務(wù)提供實(shí)用程序功能。 Lodash是NPM下載量最大,依賴性最多的包,旨在為數(shù)組,字符串,對象和參數(shù)對象提供更一致的跨環(huán)境迭代支持。 它已經(jīng)成為 Underscore 的超集,并且由相同的核心貢獻(xiàn)者維護(hù)。 這兩個(gè)庫絕對應(yīng)該在你的技術(shù)棧中。愚人碼頭注:兩者不同的地方可以看看?stackoverflow 上的回答。
Lodash :https://github.com/lodash/lodash
Lodash 中文文檔:http://www.css88.com/doc/lodash/
Underscore :https://github.com/lodash/lodash
Underscore 中文文檔:http://www.css88.com/doc/underscore/
Ramda
這個(gè)JS 實(shí)用程序庫超過 12K stars,Ramda庫專為函數(shù)式編程而設(shè)計(jì),可以輕松創(chuàng)建函數(shù)式 pipeline、且從不改變用戶已有數(shù)據(jù)。 不可變性和無副作用函數(shù)是其設(shè)計(jì)理念的核心。 所有函數(shù)都自動進(jìn)行柯里化 curry,并且相應(yīng)地安排傳遞的參數(shù)以便于使用。
Ramda :?https://github.com/ramda/ramda
你也可以看看?immutable.js
如果你對 JavaScript 函數(shù)式編程還不是很了解,可以看看下面這些文章
- JavaScript 中的 Currying(柯里化) 和 Partial Application(偏函數(shù)應(yīng)用)
- 一步一步教你 JavaScript 函數(shù)式編程(第一部分)
- 一步一步教你 JavaScript 函數(shù)式編程(第二部分)
- 一步一步教你 JavaScript 函數(shù)式編程(第三部分)
- JavaScript 函數(shù)式編程術(shù)語大全
MathJS
超過 6K 的stars,Math.js是一個(gè) JavaScript 和 Node.js 中應(yīng)用最廣泛的 math 數(shù)學(xué)擴(kuò)展庫,它與JavaScript的內(nèi)置 Math 庫兼容。 該庫包含一個(gè)靈活的表達(dá)式解析器,能夠執(zhí)行符號計(jì)算,并帶有大量內(nèi)置函數(shù)和常量。 你甚至可以自己擴(kuò)展它。
Math.js :https://github.com/josdejong/mathjs
Moment/date-fns
Moment 擁有超過40K的stars,moment.js是一個(gè)JavaScript日期和時(shí)間操作庫,用于解析,驗(yàn)證,操作和格式化日期。 Moment旨在在瀏覽器和Node.js 環(huán)境中工作。 從 v2.10.0 開始,代碼用ECMAScript 6模塊編寫。
Date-fns 是一個(gè)越來越流行的(超過11K的stars,每周超過50萬次NPM安裝)JavaScript 時(shí)間操作庫,許多開發(fā)人員選擇它來替換 moment.js( 參見比較?),提供超過130個(gè)函數(shù)來操作 瀏覽器 和 Node.js 中的日期。 Date-fns是使用純函數(shù)構(gòu)建的,并且在不更改傳遞日期實(shí)例的情況下保持不可變(immutable)。 它適用于webpack,Browserify或Rollup等打包器,并且還支持 tree-shaking。
moment.js :https://github.com/moment/moment/
date-fns :https://github.com/date-fns/date-fns
Sugar

Sugar 擁有超過3.5K個(gè)stars,Sugar是一個(gè)用于處理本機(jī)對象的JavaScript實(shí)用程序庫。 自定義構(gòu)建和模塊化的npm包,允許您只使用您需要的東西,用戶可以定義方法或使用插件來處理專門的用例。 值得一試。
Sugar :https://github.com/andrewplummer/Sugar
Lazy
Lazy 擁有5K個(gè)stars,lazy.js是一個(gè)函數(shù)式的JavaScript庫。該庫的底層的實(shí)現(xiàn)都是懶執(zhí)行的,也就是說盡量不做運(yùn)算,除非站的需要。這個(gè)庫不依賴第三方庫,這里有一個(gè)demo作為序列進(jìn)行測試的現(xiàn)場演示,這里是?API文檔。
lazy.js :https://github.com/dtao/lazy.js
CollectJS
CollectJS 擁有超過3.5K個(gè)stars,collect.js 是一個(gè)非常有前途的庫,并且不依賴于任何第三方庫,用于在JavaScript中處理數(shù)組和對象,其中有許多有用的功能,并且API(幾乎)與?Laravel Collections5.5相同。 該庫維護(hù)非常積極,值得關(guān)注。
collect.js :https://github.com/ecrmnn/collect.js/
ChanceJS
Chance是一個(gè)隨機(jī)字符串,數(shù)字等生成器,非常簡單。有助于減少一些枯燥的工作,在你需要寫自動化測試或則其它你需要生成隨機(jī)的地方很有用。雖然只要3K個(gè)stars,這個(gè)庫非常有用,因?yàn)楫?dāng)我們被要求生成隨機(jī)的東西時(shí),我們往往會重復(fù)編寫我們的代碼。
chancejs :https://github.com/chancejs/chancejs
ChartJS

擁有近 40K 的 stars,chart.js是一個(gè)很好的少即是多的例子,提供8種不同的數(shù)據(jù)可視化類型,每種類型都是動畫并且可自定義的。 Chart.js 允許您使用??標(biāo)簽創(chuàng)建簡單的HTML5圖表,在所有現(xiàn)代瀏覽器中都具有出色的渲染性能。 絕對是列表中最有用和最優(yōu)雅的庫之一。
chart.js :https://github.com/chartjs/Chart.js
Polished
Polished 擁有超過 3.5K 個(gè)stars,由?styled-components?團(tuán)隊(duì)開發(fā),Polished是一個(gè)非常輕量級的工具集,用于在JavaScript中使用Sass風(fēng)格的輔助函數(shù)和mixin編寫樣式。 該庫與樣式組件,Aphrodite,Radium或純內(nèi)聯(lián)樣式兼容。
polished :https://github.com/styled-components/polished
Mout
Mout.js是 JavaScript 模塊化實(shí)用程序的集合,可以在瀏覽器或node.js中用作AMD模塊,提供類似于其他語言標(biāo)準(zhǔn)庫(Python,Ruby,PHP等)上的輔助方法。 mout.js允許您僅加載所需的模塊/函數(shù),提供一致的API并規(guī)范多個(gè)瀏覽器的行為。
mout :https://github.com/mout/mout
30 seconds of code
這并不是一個(gè) JavaScript 庫,而是一個(gè)非常實(shí)用的 JavaScript 代碼片段集合,全部采用 ES6 編寫,而且實(shí)用最簡單的方法實(shí)現(xiàn),盡量確保你可以在30秒或更短的時(shí)間內(nèi)理解這些代碼,并使用。
30 seconds of code :https://github.com/30-seconds/30-seconds-of-code
30 seconds of code 中文翻譯:http://www.css88.com/30-seconds-of-code/
mojs

mojs是一個(gè)用于創(chuàng)建任何復(fù)雜的動態(tài)圖形和 Web 動畫庫,簡單而且動畫非常流暢。 它提供了聲明性語法。 它由簡單的聲明性API構(gòu)建,因此它也與跨設(shè)備瀏覽器兼容。
mojs :https://github.com/legomushroom/mojs
Voca
用于字符串操作的JavaScript庫。 它包括有用的函數(shù),如change case, trim, pad,slugify,latinise,sprintf’y,truncate,escape等。 您可以在構(gòu)建時(shí)加載單個(gè)函數(shù)來最小化應(yīng)用程序。 該庫具有高測試覆蓋率,沒有其他依賴。
voca :https://github.com/panzerdp/voca
Licia
這是一個(gè)有趣的項(xiàng)目,只有400多個(gè)stars,基本上是一個(gè)簡單卻又很有用 JavaScript 代碼片段集合,具有高級文檔和測試覆蓋率。 v2.0 在 master 上發(fā)布了預(yù)覽版本,并且維護(hù)和開發(fā)都很積極。
你可以在?Hackernoon的文章?中了解更多信息。
licia :https://github.com/liriliri/licia
主要內(nèi)容來自?https://blog.bitsrc.io/11-javascript-utility-libraries-you-should-know-in-2018-3646fb31ade?,在此內(nèi)容上做了一些增加。
