1.數字格式化
GitHub - adamwdraper/Numeral-js: A javascript library for formatting and manipulating numbers.
2.比UUID更輕量的唯一ID生成器,UUID和NanoID的區(qū)別
NanoID 大小只有 108 字節(jié) 與 UUID 不同,NanoID 的大小要小 4.5 倍,并且沒有任何依賴關系。
此外,大小限制已將大小從另外 35% 減小。大小減少直接影響數據的大小。
例如,使用 NanoID 的對象小而緊湊,用于數據傳輸和存儲。更安全 在大多數的隨機生成器中,他們使用不安全的Math.random()。但是,NanoID使用crypto module和Web Crypto API,這是更安全的。
另外,NanoID在實現ID生成器的過程中使用了它自己的算法,稱為統(tǒng)一算法,而不是使用"隨機%的字母表"。
統(tǒng)一算法:https://github.com/ai/nanoid/blob/main/index.js
NanoID 比 UUID 更年輕,且從npm趨勢對比來看,NanoID的上升趨勢更明顯,而UUID的進展則很平緩。
因此,基于NanoID 更小、更快、更安全、更不易沖突,個人更推薦使用 NanoID。
3.Licia 是一套在開發(fā)中實踐積累起來的實用 JavaScript 工具庫。該庫目前擁有超過 400 個模塊。
優(yōu)勢
a.同時支持瀏覽器、node 及小程序運行環(huán)境?在開發(fā)中,我們發(fā)現相當一部分 npm 包是無法直接在小程序中跑起來的。比如前端工程師十分常用的 lodash,在小程序中引入會報錯。要進行一定的修改才能正常跑在小程序中。
b.比lodash和underscore增加更多的適用函數,400+ 的模塊。md5、atob、btoa、Emitter、dateFormat等方法精煉簡單。
c.定制化生成可以使用更小體積的工具庫,只需要工程中需要的函數,其他通通砍掉!
官方地址: https://licia.liriliri.io/
生成定制化 util.js
使用 npm 包的方式會將所有功能引入到代碼包中,大概會增加 100 kb 的大小。如果你只想引入所需腳本,可以使用在線工具生成定制化 util 庫。
a、訪問 https://licia.liriliri.io/builder.html
b、輸入需要的模塊名,點擊生成下載 util.js。
c、將生成的工具庫拷貝到小程序項目任意目錄下然后直接引入使用。
4.TypeIt是一個通用的JavaScript打字機效果實現程序。
憑借其簡單而靈活的配置,您可以鍵入單個或多個字符串,這些字符串可以中斷行,刪除/替換彼此,輕松處理包含HTML的字符串,循環(huán)等等。
而且為了獲得更高級、更可控的打字效果,TypeIt附帶了一些配套功能,這些功能可以鏈接起來將您的打字控制在單個字符或毫秒,使您能夠鍵入動態(tài)敘述,完全控制速度變化、換行、刪除和暫停。
特點
為提供了一系列流暢的API,以便微調效果。
選擇僅當目標元素在屏幕上可見時才開始鍵入。
連續(xù)循環(huán)字符串。
以編程方式或直接在HTML中定義字符串
輕松處理HTML(甚至是嵌套標簽!),保留其所有屬性(類,id等)SEO友好。
作為現代捆綁商的 ES 模塊提供,或作為 UMD 庫提供,用于通過傳統(tǒng)標簽加載。<script>
5.howler.js是現代網絡的音頻庫。它默認為Web Audio API并回退到HTML5 Audio。這使得在所有平臺上使用 JavaScript 處理音頻變得容易且可靠。
howler.js不僅有諸多特點,而且還兼容了許多舊版本
滿足所有音頻需求的單一 API
默認為 Web 音頻 API 并回退到 HTML5 音頻
跨環(huán)境處理邊緣情況和錯誤
支持所有編解碼器以提供完整的跨瀏覽器支持
自動緩存以提高性能
單獨、分組或全局控制聲音
一次播放多個聲音
簡單的聲音精靈定義和播放
完全控制衰落、速率、搜索、音量等。
輕松添加 3D 空間聲音或立體聲聲像
模塊化 - 使用您想要的并且易于擴展
沒有外部依賴,只有純 JavaScript
輕至 7kb 壓縮包
6.timeago.js?是一個非常簡潔、輕量級、不到 2kb 的很簡潔的 Javascript 庫。作用就是將?datetime?時間轉化成類似于*** 時間前的描述字符串,例如:“3小時前”。
特點
本地化支持,默認自帶中文和英文語言;??
之前 xxx 時間前、xxx 時間后;
支持自動實時更新;
支持npm方式和瀏覽器script方式;
測試用例完善,執(zhí)行良好。
7.按鈕生成器
https://markodenic.com/tools/buttons-generator/
8.使用hashids加密路由id
在網址上應用hashids有以下4點重要意義:
加密隱藏真實id:?在某些情況下,你可能希望隱藏網址中的真實id,以增加安全性和防止直接暴露敏感信息。使用hashids,可以將真實的數字id轉換為短字符串,并在網址中使用該短字符串代替原始id。這樣,外部用戶只能看到短字符串,而無法直接推斷出真實的id值。
可讀性和美觀性:?長的數字id在網址中可能顯得冗長和難以理解。使用hashids將其轉換為短字符串,可以大大提升網址的可讀性和美觀性。短字符串通常包含字母和數字的組合,更易于記憶和分享。
防止猜測和遍歷:?使用連續(xù)的數字id在網址中可能導致猜測和遍歷的風險,因為攻擊者可以通過遞增id來嘗試訪問和暴露數據。通過使用hashids生成的短字符串作為id,可以有效地防止這種攻擊。由于短字符串是隨機生成的,攻擊者無法根據短字符串推斷出下一個id。
URL縮短和分享:?hashids生成的短字符串可以用作url縮短服務的替代方案。你可以將長的url轉換為短字符串,并在分享時使用該短字符串。這對于限制字符數、簡化鏈接以及在社交媒體和短信中共享鏈接都非常有用。
安裝依賴:npm install --save hashids
9.使用bluebird提升promise的執(zhí)行速度
bluebird是一個流行的Promise庫,用于處理異步操作。它提供了強大的異步編程工具,使得編寫和管理異步代碼變得更加簡單和可靠。
Promise功能增強:bluebird提供了許多額外的功能和操作,超出了原生Promise的范圍。它支持超時控制、并發(fā)控制、錯誤處理、重試、進度報告和取消等功能。這些功能使得處理復雜的異步控制流變得更加容易。
性能優(yōu)化:bluebird在性能方面進行了優(yōu)化,比原生Promise更快。?它實現了高效的異步調度和內存管理,以提供更快的執(zhí)行速度和更低的資源消耗。這使得在大規(guī)模異步操作的情況下,bluebird可以提供更高效的性能。
錯誤追蹤和調試:bluebird提供了更好的錯誤追蹤和調試支持。?當使用bluebird進行異步操作時,它會生成詳細的錯誤堆棧跟蹤信息,包括異步操作鏈的每個步驟。這使得在調試和排查錯誤時更容易定位問題所在。
可互操作性:bluebird的api與原生Promise相似,因此可以與其他使用Promise的庫和代碼進行互操作。?這使得在現有的代碼基礎上,遷移到bluebird更加容易,并且可以充分利用bluebird提供的額外功能。
安裝依賴:npm install --save bluebird
10.加減乘除運算集成big.js,解決js小數精度問題
當涉及到浮點數計算時,js中的精度丟失問題, 是由于使用IEEE 754標準來表示和計算浮點數的方式引起的。這個問題不僅僅在js中存在,而是在所有使用IEEE 754標準的編程語言中都會遇到。
IEEE 754標準定義了兩種常見的浮點數表示形式:單精度(32位)和雙精度(64位)。在?js中,采用的是雙精度表示法,即64位。
然而,由于二進制和十進制之間的轉換存在差異,某些十進制分數無法精確表示為有限位的二進制浮點數。這導致了舍入誤差和精度丟失。
安裝依賴:npm install --save big.js