dayjs
lodash.js
number-precision
js-cookie
qs.js
jsencrypt
day.js
day.js 是一个轻量级的 JavaScript 日期处理库,用于解析、验证、操作和格式化日期。它体积小(仅 2KB),API 设计类似 Moment.js,但性能更高且不可变。
常用方法:
npm install dayjs
# 或
yarn add dayjs
import dayjs from 'dayjs'
// 基本使用
const now = dayjs()
console.log(now.format('YYYY-MM-DD')) // 2024-01-15
// 日期计算
const tomorrow = dayjs().add(1, 'day')
const lastWeek = dayjs().subtract(1, 'week')
// 日期比较
const isPast = dayjs('2023-01-01').isBefore(dayjs())
// 时间段操作
const monthStart = dayjs().startOf('month')
const monthEnd = dayjs().endOf('month')
dayjs():创建 dayjs 对象,支持传入日期字符串、时间戳或 Date 对象。
format():格式化日期,如 dayjs().format('YYYY-MM-DD')。
add() / subtract():增减时间,如 dayjs().add(1, 'day')。
diff():计算日期差值,如 dayjs('2023-10-01').diff(dayjs(), 'day')。
isBefore() / isAfter():比较日期先后。
startOf() / endOf():获取时间段的开始或结束,如 dayjs().startOf('month')。
lodash.js
lodash.js 是一个实用的 JavaScript 工具库,提供一致性、模块化和高性能的辅助函数,适用于数组、对象、字符串等数据类型的操作。
常用方法:
npm install lodash
# 或
yarn add lodash
# 或按需安装
npm install lodash.get lodash.debounce
_.get(object, path):安全获取嵌套属性值。
_.debounce(func, wait):防抖函数,限制函数触发频率。
_.throttle(func, wait):节流函数,按固定频率触发函数。
_.cloneDeep(value):深拷贝对象或数组。
_.groupBy(collection, iteratee):按条件分组数据。
_.isEmpty(value):检查值是否为空(对象、数组等)。
_.uniq(array):数组去重。
_.merge(object, sources):合并对象(深合并)。
number-precision
number-precision 是一个解决 JavaScript 浮点数精度问题的轻量级库,提供精确的加减乘除运算。
常用方法:
NP.strip(num):去除浮点数误差,如 0.1 + 0.2 的结果修正为 0.3。
NP.plus(num1, num2):精确加法,如 NP.plus(0.1, 0.2) 返回 0.3。
NP.minus(num1, num2):精确减法,如 NP.minus(1.0, 0.9) 返回 0.1。
NP.times(num1, num2):精确乘法,如 NP.times(0.1, 0.2) 返回 0.02。
NP.divide(num1, num2):精确除法,如 NP.divide(0.1, 0.2) 返回 0.5。
NP.round(num, ratio):按比例精确四舍五入,如 NP.round(1.235, 2) 返回 1.24。
import NP from 'number-precision'
// 数字转字符串(避免科学计数法)
console.log(NP.toFixed(0.1 + 0.2, 1)) // "0.3"
console.log(NP.toFixed(1000000.123, 2)) // "1000000.12"
// 安全运算(避免 NaN)
console.log(NP.plus(NaN, 1)) // 1
console.log(NP.times(null, 2)) // 0
// 链式调用
const result = NP.plus(0.1, 0.2).times(10).minus(3)
console.log(result) // 0
js-cookie
js-cookie 是一个轻量级的 JavaScript Cookie 操作库,用于简化 Cookie 的读取、设置和删除操作。
npm install js-cookie
import Cookies from 'js-cookie'
// 默认创建会话 Cookie
Cookies.set('session_data', 'some value')
// 等同于
Cookies.set('session_data', 'some value', {})
// 等价于原生
// document.cookie = "session_data=some value; path=/"
// 验证:浏览器关闭后重新打开,这个 Cookie 就不存在了
设置过期时间
// 7天后过期
Cookies.set('token', 'abc123', { expires: 7 })
// 1天后过期
Cookies.set('daily_data', 'value', { expires: 1 })
// 0.5天(12小时)
Cookies.set('short_term', 'data', { expires: 0.5 })
qs.js - 处理url参数
npm install qs
# 或
yarn add qs
import qs from 'qs'
// 解析普通查询字符串
const params = qs.parse('name=张三&age=25')
console.log(params)
// { name: '张三', age: '25' }
// 解析带数组的参数
const params2 = qs.parse('hobbies=basketball&hobbies=football')
console.log(params2)
// { hobbies: ['basketball', 'football'] }
// 解析嵌套对象
const params3 = qs.parse('user[name]=张三&user[age]=25')
console.log(params3)
// { user: { name: '张三', age: '25' } }
// 解析复杂嵌套
const params4 = qs.parse('filter[name][first]=张&filter[name][last]=三&filter[age]=25')
console.log(params4)
// { filter: { name: { first: '张', last: '三' }, age: '25' } }
jsencrypt
jsencrypt 是一个 JavaScript RSA 加密库,用于前端加密数据,常用于:
- 密码加密传输
- 敏感信息加密
- 数字签名验证
- API 请求参数加密
npm install jsencrypt

被折叠的 条评论
为什么被折叠?



