工具库使用

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.3NP.plus(num1, num2):精确加法,如 NP.plus(0.1, 0.2) 返回 0.3NP.minus(num1, num2):精确减法,如 NP.minus(1.0, 0.9) 返回 0.1NP.times(num1, num2):精确乘法,如 NP.times(0.1, 0.2) 返回 0.02NP.divide(num1, num2):精确除法,如 NP.divide(0.1, 0.2) 返回 0.5NP.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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值