| aesDecrypt | 使用 AES-GCM 算法解密数据 |
| aesEncrypt | AES 加密 |
| base64Decode | base64 解码 |
| base64Encode | base64 编码 |
| camelCase | 将字符串转换为驼峰命名格式 驼峰命名规则:首字母小写,后续每个单词首字母大写,单词间无分隔符 支持处理包含连字符(-)、下划线(_)、空格或大小写混合的字符串 |
| canBeDate | 判断是否可以转换成日期 |
| canBeNumber | 检查值是否可以安全地转换为数字 使用parseFloat()进行转换尝试,对于可以解析为有效数字的值返回true 特别注意:空字符串('')、true、false等特殊值的处理 |
| capitalize | 首字母大写 |
| capitalizeFirst | - |
| checkOPFSAvailable | 异步检测 OPFS 是否真正可用 有些浏览器可能有 API 但实际不可用 |
| chunk | 将数组分割成指定大小的数组块 当数组长度不能被分割大小整除时,最后一个块将包含剩余的元素 |
| cloneDeep | 深拷贝值 |
| compressToBase64Url | 压缩字符串到 base64 中 |
| createBroadcastTopic | 创建一个 BroadcastChannel 主题 |
| dateStringToDate | UTC 时间转换 offset 分钟 date 2018-12-04 time 19:09:10 |
| dateStringWithTimezone | UTC 时间转换 |
| debounce | - |
| decodeJWTPayload | 解码 JWT token 的信息 |
| decompressFromBase64Url | 从 base64 解压字符串 |
| deepFreeze | 深度冻结对象及其所有嵌套属性,使其不可修改 递归遍历对象的所有属性,对每个对象和函数属性调用 Object.freeze() |
| difference | 计算两个数组的差异,返回仅存在于第一个数组中且不在第二个数组中的元素 元素比较使用严格相等运算符 (===),因此对象仅在引用相同时被视为相等 结果数组保留元素在原数组中的出现顺序 |
| emptyFunction | 空函数,不执行任何操作 常用作默认回调函数或占位符函数 |
| flatten | 将嵌套一层的数组扁平化为一维数组 仅处理数组中的直接嵌套数组元素,不进行深度扁平化 |
| flattenDeep | 将任意深度的嵌套数组完全扁平化为一维数组 递归处理所有层级的嵌套数组,直至所有元素都为非数组类型 |
| flattenPathObjectToPlainObject | 将扁平的路径对象转换为嵌套的普通对象 支持点号路径(如 'a.b.c')和数组路径(如 'a[0].b') |
| formatCountdown | 倒计时 |
| formatPassTime | - |
| generateKeyBetween | 在两个排序键之间生成一个新的排序键 用于在有序列表中插入新项目,支持任意位置插入 |
| generateKeysBetween | 在两个排序键之间生成n个排序键 用于批量插入多个项目到有序列表中 |
| get | 安全地从对象中获取嵌套属性,支持复杂路径解析 通过路径字符串访问对象的深层属性,当路径不存在时返回默认值 支持多种路径格式:点表示法、方括号表示法和逗号分隔的数组路径 |
| has | 检查对象是否包含指定的嵌套属性(仅检查自有属性) 支持通过点表示法访问嵌套属性,如'a.b.c' 如果对象为null/undefined或任何父属性不存在,返回false |
| intersection | 计算多个数组的交集,返回所有输入数组中都存在的元素 使用严格相等运算符 (===) 进行元素比较,结果数组保留第一个数组中的元素顺序 如果输入单个数组,则返回该数组的去重版本 |
| isArrayBuffer | 检查值是否为ArrayBuffer类型 使用instanceof运算符进行判断 |
| isBoolean | 检查值是否为布尔类型 支持直接布尔值、布尔对象和实现了valueOf()返回布尔值的对象 |
| isDate | 检查值是否为Date对象 使用instanceof和Object.prototype.toString.call()两种方式进行判断 |
| isEmpty | 检查值是否为空 支持多种类型的空值判断,包括null、undefined、空字符串、空数组、空对象等 |
| isEqual | - |
| isEqualDate | - |
| isEqualUint8Array | - |
| isFloat | - |
| isFunction | - |
| isInt | - |
| isIntArray | - |
| isISODateString | string 是否是 ISO 日期字符串 |
| isMSTime | 判断是否是 ms 时间类型 https://github.com/vercel/ms |
| isNil | 检查值是否为null或undefined 使用严格相等(===)进行比较 |
| isNumber | 检查值是否为有效数字(排除NaN) 使用Number(value) === value进行判断,确保值是数字且不是NaN |
| isNumberArray | - |
| isObject | 检查值是否为纯对象(通过Object构造函数创建的对象) 排除数组、null、日期、正则表达式等特殊对象 |
| isObjectLike | - |
| isOPFSSupported | 检测浏览器是否支持 OPFS (Origin Private File System) |
| isPlainObject | 检查值是否为纯对象(通过Object构造函数创建的普通对象) 排除数组、日期、正则表达式、Map、Set等特殊对象 |
| isPrimitive | 检查值是否为JavaScript原始类型 JavaScript原始类型包括null、undefined、字符串、数字、布尔值、符号和大整数 |
| isPromise | - |
| isRegExp | 检查值是否为正则表达式类型 使用instanceof运算符进行判断 |
| isString | 检查值是否为字符串类型 使用typeof运算符进行判断,返回布尔值 |
| isStringArray | - |
| isSymbol | - |
| isUint8Array | 检查值是否为Uint8Array类型 使用instanceof运算符进行判断 |
| kebabCase | 转换为 kebab-case |
| logError | 优化错误打印,以表格形式显示错误信息 |
| msTimeToMilliseconds | ] ms 时间转换为毫秒 value https://github.com/vercel/ms |
| needArray | 将任意值标准化为数组格式,提供一致的数组处理接口 处理规则: - 若输入已是数组,则直接返回原数组(不创建新数组) - 若输入为null/undefined,则返回空数组 - 其他任何类型的值均包装为单元素数组 |
| nextMacroTask | 在下一个宏任务中执行函数 使用 setTimeout(fn, 0) 将函数推迟到当前执行栈清空后执行 |
| nextMicroTask | 将函数推迟到下一个微任务队列执行 使用Promise.resolve()实现,确保函数在当前同步代码执行完成后、DOM更新前执行 |
| numberStep | 将数值向上取整到最接近的步长倍数 常用于表单控件、网格布局等需要按固定间隔取值的场景 |
| numberStepScreenSize | 根据设备像素比调整数值后,按步长取整 主要用于处理不同DPI屏幕下的尺寸计算,确保在高分辨率屏幕上保持合适的步长 |
| numberStrip | 去除数字的无用小数位,解决浮点数精度问题 通过限制有效数字位数来消除JavaScript浮点数运算产生的微小误差 例如:0.1 + 0.2 通常得到 0.30000000000000004,使用本函数可得到 0.3 |
| omit | 从对象中排除指定的属性,创建并返回一个新对象 包含源对象的所有自有属性,除了指定要排除的属性 当输入对象为null/undefined时返回空对象,当排除列表为空时返回原对象的浅拷贝 |
| omitBy | 创建一个新对象,通过方法除了指定的属性 |
| once | 创建一个只执行一次的函数,后续调用将返回第一次执行的结果 适用于初始化函数、资源加载等只需要执行一次的场景 |
| orderBy | 根据指定的迭代器和排序方向对数组进行排序 支持多字段排序,按迭代器数组顺序依次比较,当字段相等时继续比较下一个字段 |
| parseChineseNumber | - |
| parseTime | 计算两个日期之间的时间差,并分解为年、月、日、时、分、秒 |
| performChunk | 分片执行任务 只能在浏览器环境中执行 把一个大任务分片执行,每次执行一小部分任务,然后让出主线程,等待下一次执行 |
| pick | 从对象中选取指定的属性,创建并返回一个新对象 只包含指定的自有属性,忽略继承属性和不存在的属性 当输入对象为null/undefined时,返回空对象 |
| pickBy | - |
| plainObjectToFlattenPathObject | 扁平化对象 |
| queryParse | - |
| queryStringify | - |
| randomArrayItem | 从数组中随机选择一个元素 使用 Math.random() 生成随机索引,返回对应位置的元素 |
| randomFloat | 生成指定范围内的随机浮点数 使用 Math.random() 生成 0 到 1 之间的随机数,然后映射到指定范围 |
| randomInt | 生成指定范围内的随机整数 使用 Math.random() 生成随机数,然后使用 Math.floor() 向下取整 |
| randomString | 生成指定长度和字符集的随机字符串 使用 Web Crypto API 的 crypto.getRandomValues() 生成加密安全的随机数 |
| randomUintByLength | 生成指定位数的随机正整数 通过生成随机数字字符串然后转换为数字实现 |
| randomUintString | 生成指定长度的随机数字字符串,第一位不为 0 适用于生成数字 ID 或序列号,确保不会以 0 开头 |
| requestIdleCallbackPolyfill | - |
| rmbUppercase | 转换人民币大写 |
| rsaDecrypt | RSA 解密 |
| rsaEncrypt | RAS 加密 |
| rsaGenerateKey | 生成 RSA 密钥对 |
| set | 设置对象中指定路径的属性值,自动创建不存在的嵌套路径 支持点表示法和方括号表示法的路径,根据下一个路径段类型自动创建数组或对象 例如:路径'a[0].b'会创建数组和对象结构 |
| setBase | - |
| setWith | 这个方法类似 set 除了它接受一个 customFun 决定如何设置对象路径的值。 如果 fun 返回 undefined 将会有它的处理方法代替。 customFun 会传入3个参数:(nsValue, key, nsObject) |
| similarity | - |
| sleep | 等待指定的毫秒数 |
| snakeCase | 将字符串转换为蛇形格式 |
| sortBy | 创建一个按指定对象属性排序的比较函数,用于数组排序 按属性值的自然顺序进行升序排序,支持字符串、数字等基本类型比较 生成的比较函数兼容Array.sort()方法,会修改原数组 |
| startCase | - |
| stringSingleline | 将多行文本转换为单行文本,移除多余的空白字符 去除首尾空白,并将连续的空白字符替换为单个空格 |
| stringTemplate | 模板字符串 |
| stringTime | 将时间数值格式化为带单位的字符串 |
| stringToArrayBuffer | 字符串转 ArrayBuffer |
| throttle | 创建一个节流函数,确保函数在指定时间间隔内最多执行一次 与防抖不同,节流会定期执行函数,而非等待最后一次调用后执行,适用于限制高频事件(如滚动、调整大小)的触发频率 |
| toInt | 将值转换为整数,使用向下取整(正数)和向上取整(负数)的策略 |
| toPlainObject | 将任意值转换为普通对象,只保留自有属性 通过遍历对象的可枚举属性,创建一个新的普通对象 |
| traverseObjectKeys | - |
| tryToNumber | 安全地将值转换为数字,只在能转换为有效数字时才转换 如果无法转换为有效数字(NaN、无穷大等),则返回原值不变 |
| uint8ArrayToString | 将Uint8Array转换为UTF-8字符串 使用TextDecoder API进行解码,确保正确处理多字节字符 |
| uncapitalize | 首字母小写 |
| uncapitalizeFirst | - |
| unionBy | 根据指定的键函数对数组进行去重,返回唯一元素的新数组 使用键函数提取每个元素的唯一标识符,保留第一次出现的元素 |
| unixTimestamp | unix 时间戳 |
| urlJoin | - |
| zipObject | 创建一个对象,将键数组和值数组/函数配对组合 支持多种值来源:固定值、值数组或值生成函数 |