2019獨角獸企業重金招聘Python工程師標準>>>
????????JavaScript 仍然是 2018 年最受歡迎和使用最為廣泛的編程語言,因此 JavaScript 生態系統也會繼續發展壯大。
????????然而,JavaScript 的標準庫仍然繼續保持“短小精悍”的身材。為了填補標準庫功能方面的空白,在過去幾年中,GitHub 上出現了很多流行的 JavaScript 庫。以下列出了 11 個有用的庫,這些庫的維護狀態均很活躍。
?
- Underscore 和 Lodash(dah)
????????可能大多數人都知道這兩個庫。Underscore 的目的是為 JavaScript 中的常見任務提供實用的函數。Lodash 是下載量最大和被依賴最多的庫之一,旨在為數組、字符串、object 和 argument 對象提供更一致的跨環境迭代支持,并已成為 Underscore 的超集。這兩個庫由相同的核心貢獻者維護,在技術選型時完全可以考慮使用它們。
????????Lodash - https://github.com/lodash/lodash
????????Underscore - https://github.com/jashkenas/underscore
?
- Ramda
????????在 GitHub 上的 Star 已經超過 12,000,這個庫專為函數式編程而設計,可以輕松創建不改變用戶數據狀態的函數式管道。Ramda 的核心設計理念是創建具有不變性和無副作用的函數。所有的函數會被自動柯里化,并根據易用性安排參數的順序。
????????Ramda - https://github.com/ramda/ramda
?
- MathJS
????????在 GitHub 上的 Star 已經超過 6000,這個庫是 JavaScript 和 Node.js 的數學擴展庫,與 JavaScript 內置的 Math 庫兼容。該庫包含一個靈活的表達式解析器,能夠運行符號計算,并提供了一系列內置函數和常量。用戶還可以對其進行擴展。
????????MathJS - https://github.com/josdejong/mathjs
?
- Moment
????????在 GitHub 上的 Star 已經超過 37,000,是一個 JavaScript 日期和時間操作庫,用于解析、驗證、操作和格式化日期。Moment 可以在瀏覽器和 Node.js 中運行。從 2.10.0 版本開始遷移到 ECMAScript 6。
????????Moment - https://github.com/moment/moment
????????另外兩個同類的庫:
????????Date-fns(10,000 個 Star)- https://github.com/date-fns/date-fns
????????DateJS - https://github.com/datejs/Datejs
?
- Sugar
????????在 GitHub 上的 Star 已經超過 3500,主要用于處理本地對象。這個庫支持自定義構建,還提供了模塊化的 npm 包,因此可以只使用其中必要的部分模塊(也可以與 Bit 結合使用),用戶還可以通過自定義方法或使用插件來應對特定的使用場景。
????????Sugar - https://github.com/andrewplummer/Sugar
?
- Lazy
????????在 GitHub 上的 Star 將近 5000,是一個功能強大的 JavaScript 庫,它的 lazy 引擎“盡可能地少做一些工作”,同時保持足夠的靈活性。
????????Lazy - https://github.com/dtao/lazy.js
?
- CollectJS
????????在 GitHub 上的 Star 超過 3200,主要用于處理 JavaScript 中的數組和對象,無需其他依賴,提供了幾十個有用的功能和 API,這些 API 幾乎與 Laravel Collections 5.5 相同。該庫的維護狀態很活躍,值得關注。
???????? CollectJS - https://github.com/ecrmnn/collect.js
?
- ChanceJS
????????Chance 在 GitHub 上的 Star 超過 3200,一個簡單的隨機對象生成器,用于生成隨機的字符串、數字等。在編寫自動化測試代碼或任何需要隨機對象的地方,可以用它來減少單調的工作。
????????ChanceJS - https://github.com/chancejs/chancejs
?
- ChartJS
????????在 GitHub 上的 Star 將近 40,000 個,提供了 8 種不同類型的數據可視化,每種類型都支持動畫和定制。借助 Chart.js,我們可以使用標簽創建簡單的HTML5圖表,而且在所有現代瀏覽器中都具有出色的渲染性能。
????????ChartJS - https://github.com/chartjs/Chart.js
?
- Polished
????????在 GitHub 上的 Star 超過 3500 個,由 styled-components 團隊開發,是一個非常優秀的輕量級工具集,支持使用 JavaScript 編寫具有 SASS 風格輔助函數和 mixin 的樣式。該庫與 styled-components、Aphrodite、Radium 或簡單的內聯樣式兼容。這個庫可以在 GitHub 上找到,Bit 社區(非官方)也單獨提供所有的功能,因此可以單獨安裝、導入和使用。
????????Polished - https://github.com/styled-components/polished
????????Bit 社區提供的單獨安裝版 - https://bitsrc.io/ranm8/polished
?
- Mout
????????Mout.js 是一組模塊化的 JavaScript 庫,可以在瀏覽器或 node.js 中運行,提供類似于其他語言標準庫(Python、Ruby、PHP 等)中的輔助方法。mout.js 允許僅加載必需的模塊或函數,并提供了一致的 API,規范了跨瀏覽器行為。
????????Mout - https://github.com/mout/mout
?
特別推薦
- Bit utils
????????一個模塊化和高性能的庫,已經被用在 Bit 的 web hub 中。這些函數可使用 NPM/Yarn 進行單獨安裝,用戶也可以創建自己的集合,并從不同的庫和項目中收集有用的功能。
????????Bit utils - https://bitsrc.io/bit/utils
?
- Voca
????????一個用于操作字符串的 JavaScript 庫。它提供的功能包括大小寫轉換、trim、pad、slugify、latinise、sprintf、truncate、escape 等。用戶可以加載單個函數,以便最小化應用程序的構建。該庫具有很高的測試覆蓋率,并且不依賴其他庫。
????????Voca - https://github.com/panzerdp/voca
?
- Licia
????????只有 400 個 Star,這個有趣的項目基本上是一個簡單但有用的 JavaScript 片段集合,具有很高的測試覆蓋率,文檔也很齊全。
????????Licia - https://github.com/liriliri/licia
?
作者 | Jonathan Saring
編輯 | 無明