1.数字格式化
GitHub - adamwdraper/Numeral-js: A javascript library for formatting and manipulating numbers.
2.比UUID更轻量的唯一ID生成器,UUID和NanoID的区别
NanoID 大小只有 108 字节 与 UUID 不同,NanoID 的大小要小 4.5 倍,并且没有任何依赖关系。
此外,大小限制已将大小从另外 35% 减小。大小减少直接影响数据的大小。
例如,使用 NanoID 的对象小而紧凑,用于数据传输和存储。更安全 在大多数的随机生成器中,他们使用不安全的Math.random()。但是,NanoID使用crypto module和Web Crypto API,这是更安全的。
另外,NanoID在实现ID生成器的过程中使用了它自己的算法,称为统一算法,而不是使用"随机%的字母表"。
统一算法:https://github.com/ai/nanoid/blob/main/index.js
NanoID 比 UUID 更年轻,且从npm趋势对比来看,NanoID的上升趋势更明显,而UUID的进展则很平缓。
因此,基于NanoID 更小、更快、更安全、更不易冲突,个人更推荐使用 NanoID。
3.Licia 是一套在开发中实践积累起来的实用 JavaScript 工具库。该库目前拥有超过 400 个模块。
优势
a.同时支持浏览器、node 及小程序运行环境 在开发中,我们发现相当一部分 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的字符串,循环等等。
而且为了获得更高级、更可控的打字效果,TypeIt附带了一些配套功能,这些功能可以链接起来将您的打字控制在单个字符或毫秒,使您能够键入动态叙述,完全控制速度变化、换行、删除和暂停。
特点
为提供了一系列流畅的API,以便微调效果。
选择仅当目标元素在屏幕上可见时才开始键入。
连续循环字符串。
以编程方式或直接在HTML中定义字符串
轻松处理HTML(甚至是嵌套标签!),保留其所有属性(类,id等)SEO友好。
作为现代捆绑商的 ES 模块提供,或作为 UMD 库提供,用于通过传统标签加载。<script>
5.howler.js是现代网络的音频库。它默认为Web Audio API并回退到HTML5 Audio。这使得在所有平台上使用 JavaScript 处理音频变得容易且可靠。
howler.js不仅有诸多特点,而且还兼容了许多旧版本
满足所有音频需求的单一 API
默认为 Web 音频 API 并回退到 HTML5 音频
跨环境处理边缘情况和错误
支持所有编解码器以提供完整的跨浏览器支持
自动缓存以提高性能
单独、分组或全局控制声音
一次播放多个声音
简单的声音精灵定义和播放
完全控制衰落、速率、搜索、音量等。
轻松添加 3D 空间声音或立体声声像
模块化 - 使用您想要的并且易于扩展
没有外部依赖,只有纯 JavaScript
轻至 7kb 压缩包
6.timeago.js 是一个非常简洁、轻量级、不到 2kb 的很简洁的 Javascript 库。作用就是将 datetime 时间转化成类似于*** 时间前的描述字符串,例如:“3小时前”。
特点
本地化支持,默认自带中文和英文语言;
之前 xxx 时间前、xxx 时间后;
支持自动实时更新;
支持npm方式和浏览器script方式;
测试用例完善,执行良好。
7.按钮生成器
https://markodenic.com/tools/buttons-generator/
8.使用hashids加密路由id
在网址上应用hashids有以下4点重要意义:
加密隐藏真实id: 在某些情况下,你可能希望隐藏网址中的真实id,以增加安全性和防止直接暴露敏感信息。使用hashids,可以将真实的数字id转换为短字符串,并在网址中使用该短字符串代替原始id。这样,外部用户只能看到短字符串,而无法直接推断出真实的id值。
可读性和美观性: 长的数字id在网址中可能显得冗长和难以理解。使用hashids将其转换为短字符串,可以大大提升网址的可读性和美观性。短字符串通常包含字母和数字的组合,更易于记忆和分享。
防止猜测和遍历: 使用连续的数字id在网址中可能导致猜测和遍历的风险,因为攻击者可以通过递增id来尝试访问和暴露数据。通过使用hashids生成的短字符串作为id,可以有效地防止这种攻击。由于短字符串是随机生成的,攻击者无法根据短字符串推断出下一个id。
URL缩短和分享: hashids生成的短字符串可以用作url缩短服务的替代方案。你可以将长的url转换为短字符串,并在分享时使用该短字符串。这对于限制字符数、简化链接以及在社交媒体和短信中共享链接都非常有用。
安装依赖:npm install --save hashids
9.使用bluebird提升promise的执行速度
bluebird是一个流行的Promise库,用于处理异步操作。它提供了强大的异步编程工具,使得编写和管理异步代码变得更加简单和可靠。
Promise功能增强:bluebird提供了许多额外的功能和操作,超出了原生Promise的范围。它支持超时控制、并发控制、错误处理、重试、进度报告和取消等功能。这些功能使得处理复杂的异步控制流变得更加容易。
性能优化:bluebird在性能方面进行了优化,比原生Promise更快。 它实现了高效的异步调度和内存管理,以提供更快的执行速度和更低的资源消耗。这使得在大规模异步操作的情况下,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