# zh_js
**Repository Path**: nm97/zh_js
## Basic Information
- **Project Name**: zh_js
- **Description**: 禁止用于任何违法用途,使用者需自行承担全部责任
- **Primary Language**: Unknown
- **License**: MPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 6
- **Created**: 2025-11-08
- **Last Updated**: 2025-11-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 中文JavaScript库(zh_js)
## 项目地址
**Gitee公共仓库**:[https://gitee.com/xbkjlm/zh_js](https://gitee.com/xbkjlm/zh_js)
## 许可说明
本项目采用 **Mozilla Public License Version 2.0** 开源许可协议。
### MPL 2.0 许可证主要特点:
- **自由使用与修改**:您可以自由使用、修改本项目的源代码
- **衍生作品要求**:对本项目代码的修改必须在相同许可证下发布
- **商业友好**:允许将本项目集成到商业产品中
- **独立文件**:可以将MPL许可的文件与其他许可的文件组合成更大的作品
详细许可条款请参阅项目根目录下的 [LICENSE](LICENSE) 文件或访问官方网站:[http://mozilla.org/MPL/2.0/](http://mozilla.org/MPL/2.0/)
> **重要提示**:本源码不得用于违法或犯罪行为。使用者应独自承担使用本源码所产生的所有法律责任。作者不负责任何违法使用。
## 法律声明
本项目仅供学习与研究使用,不得用于任何违反中华人民共和国法律法规的活动。
使用本项目源码造成的任何直接或间接后果,由使用者本人承担全部责任。
作者不对任何因不当使用而产生的法律问题负责。
## 项目结构说明
### test 目录 - 使用示例
`test` 目录包含了各个中文封装模块的使用示例代码,帮助开发者快速了解如何使用这些模块。
### zh 目录 - 中文封装模块
`zh` 目录包含了所有的中文封装模块代码,提供各种功能的中文API接口。
### 目录结构
```
test/
├── 公共函数/ # 公共函数使用示例
├── 前端/ # 前端相关功能使用示例
└── 后端/ # 后端相关功能使用示例
zh/
├── 公共函数/ # 公共函数中文封装
├── 前端/ # 前端相关功能中文封装
└── 后端/ # 后端相关功能中文封装
```
### 中文库详细目录结构
```
zh/
├── 公共函数/ # 公共函数中文封装
│ ├── zh-array.js # 数组操作中文封装
│ ├── zh-date.js # 日期操作中文封装
│ ├── zh-function.js # 函数操作中文封装
│ ├── zh-heap.js # 堆结构中文封装
│ ├── zh-map.js # Map操作中文封装
│ ├── zh-math.js # 数学操作中文封装
│ ├── zh-object.js # 对象操作中文封装
│ ├── zh-promise.js # Promise操作中文封装
│ ├── zh-queue.js # 队列操作中文封装
│ ├── zh-set.js # Set操作中文封装
│ ├── zh-stack.js # 栈操作中文封装
│ ├── zh-string.js # 字符串操作中文封装
│ └── zh-timer.js # 定时器操作中文封装
├── 前端/ # 前端相关功能中文封装
│ ├── zh-dom.js # DOM操作中文封装
│ ├── zh-storage.js # 存储操作中文封装
│ ├── zh-url.js # URL操作中文封装
│ └── zh-websocket.js # WebSocket操作中文封装
└── 后端/ # 后端相关功能中文封装
├── CSV/ # CSV文件处理模块
│ └── index.js
├── Express/ # Express框架中文封装
│ └── index.js
├── PDF/ # PDF生成与处理模块
│ └── index.js
├── Redis/ # Redis缓存操作模块
│ └── index.js
├── Word/ # Word文档处理模块
│ └── index.js
├── xlsx/ # Excel文件处理模块
│ └── index.js
├── 令牌/ # JWT令牌处理模块
│ └── index.js
├── 压缩_解压/ # 文件压缩与解压模块
│ └── index.js
├── 参数检验/ # 请求参数验证模块
│ └── index.js
├── 数据库操作/ # 数据库操作模块
│ └── index.js
├── 文件上传/ # 文件上传处理模块
│ └── index.js
├── 日志_输出/ # 日志记录模块
│ └── index.js
├── 核心/ # 核心功能模块
│ ├── HTTP.js # HTTP操作中文封装
│ ├── index.js # 核心模块入口
│ ├── 事件.js # 事件处理中文封装
│ ├── 加密.js # 加密解密中文封装
│ ├── 实用工具.js # 实用工具中文封装
│ ├── 文件系统.js # 文件系统中文封装
│ ├── 流.js # 流操作中文封装
│ ├── 路径.js # 路径操作中文封装
│ └── 进程与系统.js # 进程与系统操作中文封装
└── 邮件/ # 邮件发送模块
└── index.js
```
### 中文库依赖安装指南
下表列出了各个模块所需的依赖包及其安装命令。根据项目需要,您可以选择性地安装相应模块的依赖:
### 公共函数模块
| 模块名称 | 所需依赖包 | npm 安装命令 |
|---------|------------|------------|
| 公共函数 | - (JavaScript 内置) | 无需额外安装 |
### 前端模块
| 模块名称 | 所需依赖包 | npm 安装命令 |
|---------|------------|------------|
| 前端功能 | - (浏览器内置) | 无需额外安装 |
### 后端模块
| 模块名称 | 所需依赖包 | npm 安装命令 |
|---------|------------|------------|
| Express | express, cookie-parser, express-session | `npm install express cookie-parser express-session` |
| 数据库操作 | sequelize, mysql2 | `npm install sequelize mysql2` |
| CSV | - (Node.js 内置) | 无需额外安装 |
| PDF | pdfmake, pdf-parse(可选), hummus(可选) | `npm install pdfmake pdf-parse hummus` |
| Redis | redis | `npm install redis` |
| Word | docx | `npm install docx` |
| xlsx | xlsx | `npm install xlsx` |
| 令牌 | jsonwebtoken | `npm install jsonwebtoken` |
| 压缩_解压 | archiver, unzipper, tar | `npm install archiver unzipper tar` |
| 参数检验 | joi | `npm install joi` |
| 文件上传 | multer | `npm install multer` |
| 日志_输出 | winston, morgan | `npm install winston morgan` |
| 邮件 | nodemailer | `npm install nodemailer` |
| 核心 | - (Node.js 内置) | 无需额外安装 |
**一键安装所有后端依赖的命令:**
```bash
npm install express cookie-parser express-session sequelize mysql2 pdfmake pdf-parse hummus redis docx xlsx jsonwebtoken archiver unzipper tar joi multer winston morgan nodemailer
```
> 提示:公共函数和前端模块主要基于 JavaScript 内置功能和浏览器 API,无需安装额外依赖。如果只使用部分后端模块,可以只安装相应模块的依赖,这样可以减小项目体积并加快安装速度。
## 中文库封装的命令
下表列出了各模块的中文封装函数详细信息:
### 公共函数模块
> **兼容性提示**
> 公共模块同时支持 Node.js 与浏览器环境。
> 默认使用 CommonJS 规范导出;如需 ES Module,请手动切换源码注释即可。
| 导出规范 | 源码示例 | 使用场景 |
| --- | --- | --- |
| **CommonJS**(默认) | `module.exports = { 数组 };`
`module.exports.数组 = 数组;` | Node.js 原生 require |
| **ES Module**(可选) | `export { 数组 };`
`export default 数组;` | 前端 import
Node.js 需开启 `"type": "module"` |
一键切换步骤:
1. 打开对应模块文件
2. 注释掉 CommonJS 段落
3. 取消 ES Module 段落注释
> 前端项目直接 `import` 即可;Node.js 若用 `import`,请先配置 `"type": "module"` 或使用 `.mjs` 后缀。
#### 数组操作中文封装
**模块信息**
- 模块文件名: zh-array.js
- 路径: zh/公共函数/zh-array.js
- 功能: 提供JavaScript数组的中文API封装,支持ES6+所有原生数组方法和链式调用
**核心特性**
- 所有操作均返回新数组实例,不修改原数组
- 完整支持链式调用
- 提供JSDoc参数提示
- 包含常用扩展工具方法
**命令总数:44个**
**基础操作函数** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 值 = [] | any[]\|any | 创建数组实例 | 数组实例 |
| 取值 | 无 | 无 | 获取当前数组的副本 | any[] |
| 打印 | 无 | 无 | 打印当前数组到控制台 | 数组实例(支持链式调用) |
| 长度 | 无 | 无 | 获取数组长度 | number |
| 取 | 索引 | number | 获取指定索引的元素 | any |
**元素增删改函数** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 添加 | ...元素 | any... | 添加元素到数组末尾 | 数组实例 |
| 插入 | 索引, ...元素 | number, any... | 在指定位置插入元素 | 数组实例 |
| 删除 | 索引, 数量 = 1 | number, number | 删除指定索引位置的元素 | 数组实例 |
| 清空 | 无 | 无 | 清空数组 | 数组实例(空数组) |
| 填充 | 值, 开始 = 0, 结束 = length | any, number, number | 填充数组元素 | 数组实例 |
| 拷贝到 | 目标索引, 开始 = 0, 结束 = length | number, number, number | 拷贝数组元素到目标位置 | 数组实例 |
**查找函数** (8个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 查找 | 回调 | function | 查找第一个满足条件的元素 | any\|null |
| 查找最后 | 回调 | function | 查找最后一个满足条件的元素 | any\|null |
| 查找索引 | 回调 | function | 查找第一个满足条件的元素的索引 | number |
| 查找最后索引 | 回调 | function | 查找最后一个满足条件的元素的索引 | number |
| 索引 | 值 | any | 获取指定值的第一个索引 | number |
| 最后索引 | 值 | any | 获取指定值的最后一个索引 | number |
| 包含 | 值 | any | 判断数组是否包含指定值 | boolean |
| 包含值 | 值, 起始 = 0 | any, number | 判断数组是否包含指定值(可指定起始位置) | boolean |
**迭代与转换函数** (9个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 遍历 | 回调 | function | 遍历数组的每个元素 | 数组实例(支持链式调用) |
| 映射 | 回调 | function | 映射数组元素生成新数组 | 数组实例 |
| 过滤 | 回调 | function | 过滤数组元素 | 数组实例 |
| 规约 | 回调, 初始值 | function, any | 规约数组元素 | any |
| 全部 | 回调 | function | 判断是否所有元素都满足条件 | boolean |
| 某些 | 回调 | function | 判断是否有任意元素满足条件 | boolean |
| 键迭代 | 无 | 无 | 获取数组索引的迭代器 | Iterator |
| 值迭代 | 无 | 无 | 获取数组值的迭代器 | Iterator |
| 条目迭代 | 无 | 无 | 获取数组条目的迭代器 | Iterator<[number, any]> |
**数组操作函数** (8个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 排序 | 比较函数 | function | 排序数组 | 数组实例 |
| 翻转 | 无 | 无 | 翻转数组顺序 | 数组实例 |
| 拼接 | ...数组项 | any... | 拼接多个数组或元素 | 数组实例 |
| 切片 | 开始 = 0, 结束 | number, number | 截取数组片段 | 数组实例 |
| 拍平 | 深度 = 1 | number | 拍平嵌套数组 | 数组实例 |
| 拍平映射 | 回调 | function | 映射并拍平数组 | 数组实例 |
| 合并 | ...数组项 | any... | 合并多个数组或元素(同拼接) | 数组实例 |
| 按分隔符拼接 | 分隔符 = "," | string | 按分隔符拼接数组元素为字符串 | string |
**扩展工具函数** (4个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 去重 | 无 | 无 | 数组去重 | 数组实例 |
| 打乱 | 无 | 无 | 打乱数组顺序 | 数组实例 |
| 转字符串 | 无 | 无 | 转换为字符串 | string |
| 转本地字符串 | 无 | 无 | 转换为本地字符串 | string |
**静态方法** (4个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 是否数组 | v | any | 判断是否为数组 | boolean |
| 从 | 可迭代, 映射函数 | ArrayLike\|Iterable, function | 从类数组或可迭代对象创建数组 | 数组实例 |
| 创建 | 长度, 填充值 = undefined | number, any | 创建指定长度的数组 | 数组实例 |
| 合并 | ...数组项 | any... | 合并多个数组或元素(静态方法) | 数组实例 |
**使用示例**
**CommonJS 导入:**
```javascript
// 方法1: 导入整个模块
const { 数组 } = require('./zh/公共函数/zh-array.js');
// 方法2: 直接导入数组构造函数
const 数组 = require('./zh/公共函数/zh-array.js').数组;
```
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 数组 } from './zh/公共函数/zh-array.js';
// 方法2: 使用默认导入
import 数组 from './zh/公共函数/zh-array.js';
```
**基本使用示例:**
```javascript
// 创建数组并链式调用(使用 new 关键字)
const result = new 数组([1, 2, 3])
.添加(4, 5)
.映射(x => x * 2)
.过滤(x => x > 5)
.取值();
console.log(result); // [6, 8, 10]
// 使用静态方法(静态方法不需要 new 关键字)
const isArray = 数组.是否数组([1, 2, 3]); // true
const merged = 数组.合并([1, 2], [3, 4], 5); // [1, 2, 3, 4, 5]
```
#### 日期操作中文封装
**模块信息**
- 模块文件名: zh-date.js
- 路径: zh/公共函数/zh-date.js
- 功能: 提供JavaScript日期时间的中文API封装,支持日期时间操作、链式调用、格式化、运算和比较
**核心特性**
- 所有修改操作均返回新日期实例,不修改原日期
- 完整支持链式调用
- 提供JSDoc参数提示
- 支持日期格式化、运算和比较
**命令总数:26个**
**构造与取值函数** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 值 = new Date() | Date\|string\|number | 创建日期实例 | 日期实例 |
| 取值 | 无 | 无 | 获取原始Date对象的副本 | Date |
| 取时间戳 | 无 | 无 | 获取时间戳(毫秒) | number |
| ISO字符串 | 无 | 无 | 获取ISO格式的字符串 | string |
| 本地字符串 | 本地 = undefined, 选项 = {} | string\|string[], Object | 获取本地格式的字符串 | string |
| 格式化 | 模板 = 'YYYY-MM-DD HH:mm:ss' | string | 格式化日期为字符串 | string |
**日期时间获取函数** (8个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 取年份 | 无 | 无 | 获取年份值(四位数) | number |
| 取月份 | 无 | 无 | 获取月份值 (0-11,0表示1月) | number |
| 取日期 | 无 | 无 | 获取日期值 (1-31) | number |
| 取小时 | 无 | 无 | 获取小时值 (0-23) | number |
| 取分钟 | 无 | 无 | 获取分钟值 (0-59) | number |
| 取秒 | 无 | 无 | 获取秒值 (0-59) | number |
| 取毫秒 | 无 | 无 | 获取毫秒值 (0-999) | number |
| 周几 | 无 | 无 | 获取星期值 (0-6,0表示星期日) | number |
**日期时间设置函数** (7个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 设年份 | 年 | number | 设置年份,返回新日期(不修改原日期) | 日期实例 |
| 设月份 | 月 | number | 设置月份,返回新日期(不修改原日期) | 日期实例 |
| 设日期 | 日 | number | 设置日期,返回新日期(不修改原日期) | 日期实例 |
| 设小时 | 小时 | number | 设置小时,返回新日期(不修改原日期) | 日期实例 |
| 设分钟 | 分 | number | 设置分钟,返回新日期(不修改原日期) | 日期实例 |
| 设秒 | 秒 | number | 设置秒,返回新日期(不修改原日期) | 日期实例 |
| 设毫秒 | ms | number | 设置毫秒,返回新日期(不修改原日期) | 日期实例 |
**日期运算函数** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 加天数 | 天 | number | 日期加天数,返回新日期(不修改原日期) | 日期实例 |
| 减天数 | 天 | number | 日期减天数,返回新日期(不修改原日期) | 日期实例 |
| 加月 | 月数 | number | 日期加月数,返回新日期(不修改原日期) | 日期实例 |
| 减月 | 月数 | number | 日期减月数,返回新日期(不修改原日期) | 日期实例 |
| 加年 | 年数 | number | 日期加年数,返回新日期(不修改原日期) | 日期实例 |
| 减年 | 年数 | number | 日期减年数,返回新日期(不修改原日期) | 日期实例 |
**日期比较函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 是否在之前 | 其他日期 | Date\|string\|number\|日期 | 判断当前日期是否在指定日期之前 | boolean |
| 是否在之后 | 其他日期 | Date\|string\|number\|日期 | 判断当前日期是否在指定日期之后 | boolean |
| 是否相等 | 其他日期 | Date\|string\|number\|日期 | 判断当前日期是否与指定日期相等 | boolean |
**静态方法** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 当前 | 无 | 无 | 获取当前日期实例 | 日期实例 |
| 解析 | 值 | Date\|string\|number | 解析日期值为日期实例 | 日期实例 |
| 比较 | a, b | Date\|string\|number\|日期 | 比较两个日期(-1:a在b前,0:相等,1:a在b后) | number |
**使用示例**
**CommonJS 导入:**
```javascript
// 方法1: 导入整个模块
const { 日期 } = require('./zh/公共函数/zh-date.js');
// 方法2: 直接导入日期构造函数
const 日期 = require('./zh/公共函数/zh-date.js').日期;
```
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 日期 } from './zh/公共函数/zh-date.js';
// 方法2: 使用默认导入
import 日期 from './zh/公共函数/zh-date.js';
```
**基本使用示例:**
```javascript
// 创建日期并链式调用(使用 new 关键字)
const tomorrow = new 日期()
.加天数(1)
.格式化('YYYY年MM月DD日');
console.log(tomorrow); // 例如: 2024年01月16日
// 或者使用静态方法获取当前日期
const today = 日期.当前();
// 日期比较(使用 new 关键字)
const isAfter = new 日期('2024-01-16').是否在之后('2024-01-15'); // true
// 静态方法比较(静态方法不需要 new 关键字)
const comparison = 日期.比较('2024-01-15', '2024-01-16'); // -1
```
#### 函数操作中文封装
**模块信息**
- 模块文件名: zh-function.js
- 路径: zh/公共函数/zh-function.js
- 功能: 提供JavaScript函数的中文API封装,支持函数操作、延迟执行、节流、防抖等功能
**核心特性**
- 所有操作均返回新函数实例,不修改原函数
- 完整支持链式调用
- 提供JSDoc参数提示
- 包含常用函数增强功能
**命令总数:17个**
**基础函数操作** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 函数 | Function | 创建函数封装实例 | 函数实例 |
| 取值 | 无 | 无 | 获取原始函数 | Function |
| 调用 | 上下文, ...参数 | *, ...* | 调用函数 | * |
**函数增强操作** (9个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 延迟执行 | 延迟毫秒, ...参数 | number, ...* | 延迟执行函数 | { 清除: Function } |
| 节流 | 间隔毫秒, 立即执行 = true | number, boolean | 创建节流函数 | 函数实例 |
| 防抖 | 等待毫秒, 立即执行 = false | number, boolean | 创建防抖函数 | 函数实例 |
| 绑定 | 上下文, ...前置参数 | *, ...* | 绑定函数上下文 | 函数实例 |
| 前置包装 | 前置函数 | Function | 前置包装函数 | 函数实例 |
| 后置包装 | 后置函数 | Function | 后置包装函数 | 函数实例 |
| 重试 | 最大次数, 间隔毫秒 = 1000 | number, number | 创建重试函数 | 函数实例 |
| 缓存 | 无 | 无 | 创建结果缓存函数 | 函数实例 |
| 超时控制 | 超时毫秒, 超时错误 = new Error('函数执行超时') | number, Error | 创建带超时控制的函数 | 函数实例 |
**静态方法** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 是否函数 | v | any | 判断是否为函数 | boolean |
| 空 | 无 | 无 | 创建空函数 | 函数实例 |
| 恒等 | 无 | 无 | 创建恒等函数 | 函数实例 |
| 组合 | ...函数列表 | Function... | 组合函数(从右到左) | 函数实例 |
| 管道 | ...函数列表 | Function... | 管道函数(从左到右) | 函数实例 |
**使用示例**
**CommonJS 导入:**
```javascript
// 方法1: 导入整个模块
const { 函数 } = require('./zh/公共函数/zh-function.js');
// 方法2: 直接导入函数构造函数
const 函数 = require('./zh/公共函数/zh-function.js').函数;
```
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 函数 } from './zh/公共函数/zh-function.js';
// 方法2: 使用默认导入
import 函数 from './zh/公共函数/zh-function.js';
```
**基本使用示例:**
```javascript
// 创建函数并调用(使用 new 关键字)
const 加法函数 = new 函数((a, b) => a + b);
const 结果 = 加法函数.调用(null, 5, 3);
console.log(结果); // 8
// 链式调用 - 创建节流函数
const 节流函数 = new 函数(() => console.log('执行操作'))
.节流(1000, true);
// 函数组合(使用静态方法,无需 new 关键字)
const 转大写 = str => str.toUpperCase();
const 添加感叹号 = str => str + '!';
const 添加前缀 = str => `Hello, ${str}`;
const 组合结果 = 函数.组合(转大写, 添加感叹号, 添加前缀)
.调用(null, 'world');
console.log(组合结果); // "HELLO, WORLD!"
// 函数管道(使用静态方法,无需 new 关键字)
const 管道结果 = 函数.管道(添加前缀, 添加感叹号, 转大写)
.调用(null, 'world');
console.log(管道结果); // "HELLO, WORLD!"
```
#### 堆操作中文封装
**模块信息**
- 模块文件名: zh-heap.js
- 路径: zh/公共函数/zh-heap.js
- 功能: 提供堆数据结构的中文API封装,支持最大堆、最小堆、优先级队列和链式调用
**核心特性**
- 所有操作均返回堆实例以支持链式调用
- 提供JSDoc参数提示
- 支持自定义比较函数
- 包含堆的完整操作和扩展功能
**命令总数:29个**
**基础操作函数** (8个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 初始数据 = [], 比较函数 = (a,b)=>a-b | Array, Function | 创建堆实例 | 堆实例 |
| 取值 | 无 | 无 | 获取堆数据数组的副本 | Array |
| 大小 | 无 | 无 | 获取堆中元素数量 | number |
| 是否为空 | 无 | 无 | 判断堆是否为空 | boolean |
| 清空 | 无 | 无 | 清空堆中的所有元素 | 堆实例 |
| 查看堆顶 | 无 | 无 | 查看堆顶元素但不移除 | * |
| 插入 | 元素 | * | 向堆中插入一个元素 | 堆实例 |
| 批量插入 | 元素数组 | Array | 批量插入多个元素 | 堆实例 |
**元素操作函数** (7个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 弹出堆顶 | 无 | 无 | 移除并返回堆顶元素 | * |
| 替换堆顶 | 元素 | * | 替换堆顶元素并调整堆 | * |
| 更新元素 | 索引, 新元素 | number, * | 更新指定索引位置的元素 | 堆实例 |
| 移除元素 | 索引 | number | 移除指定索引位置的元素 | * |
| 查找元素 | 元素, 相等函数 = (a,b)=>a===b | *, Function | 查找指定元素在堆中的索引 | number |
| 克隆 | 无 | 无 | 创建当前堆的深拷贝 | 堆实例 |
| 排序 | 无 | 无 | 将堆转换为有序数组 | Array |
**扩展功能函数** (9个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 转字符串 | 分隔符 = ', ' | string | 将堆转换为字符串 | string |
| 遍历 | 回调 | Function | 遍历堆中所有元素 | 堆实例 |
| 验证堆 | 无 | 无 | 验证当前数据结构是否满足堆的性质 | boolean |
| 获取高度 | 无 | 无 | 获取堆的高度(层数) | number |
| 获取层级 | 层级 | number | 获取指定层级的所有元素 | Array |
| 执行 | 操作 | Function | 在堆数据上执行自定义操作 | 堆实例或操作结果 |
| 层级迭代 | 无 | 无 | 层级遍历迭代器 - 按存储顺序迭代 | Iterator<*> |
| Symbol.iterator | 无 | 无 | 迭代器实现 - 按堆顶弹出顺序迭代 | Iterator<*> |
**静态方法** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 创建最小堆 | 初始数据 = [] | Array | 静态方法:创建最小堆 | 堆实例 |
| 创建最大堆 | 初始数据 = [] | Array | 静态方法:创建最大堆 | 堆实例 |
| 创建优先队列 | 优先函数, 初始数据 = [] | Function, Array | 静态方法:创建优先队列 | 堆实例 |
| 从数组 | 数组, 比较函数 = (a,b)=>a-b | Array, Function | 静态方法:从数组创建堆 | 堆实例 |
| 是堆 | 对象 | * | 静态方法:判断对象是否是堆实例 | boolean |
| 堆排序 | 数组, 比较函数 = (a,b)=>b-a | Array, Function | 静态方法:堆排序算法 | Array |
**使用示例**
**CommonJS 导入:**
```javascript
// 方法1: 导入整个模块
const { 堆 } = require('./zh/公共函数/zh-heap.js');
// 方法2: 直接导入堆构造函数
const 堆 = require('./zh/公共函数/zh-heap.js').堆;
```
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 堆 } from './zh/公共函数/zh-heap.js';
// 方法2: 使用默认导入
import 堆 from './zh/公共函数/zh-heap.js';
```
**基本使用示例:**
```javascript
// 创建堆并链式调用(使用 new 关键字)
const 基本堆 = new 堆()
.插入(5)
.插入(3)
.插入(8);
console.log(基本堆.取值()); // 堆中的元素
// 使用静态方法创建最小堆(静态方法不需要 new 关键字)
const 最小堆 = 堆.创建最小堆([4, 1, 3, 2, 16]);
console.log(最小堆.查看堆顶()); // 1
// 创建优先队列
const 任务队列 = 堆.创建优先队列(
(a, b) => a.优先级 - b.优先级,
[{ id: 1, 描述: '普通任务', 优先级: 3 },
{ id: 2, 描述: '紧急任务', 优先级: 1 }]
);
// 弹出堆顶元素(优先级最高的任务)
const 任务 = 任务队列.弹出堆顶();
console.log(任务.描述); // "紧急任务"
// 堆排序
const 排序结果 = 堆.堆排序([4, 10, 3, 5, 1], (a, b) => a - b);
console.log(排序结果); // [1, 3, 4, 5, 10]
```
#### 映射操作中文封装
**模块信息**
- 模块文件名: zh-map.js
- 路径: zh/公共函数/zh-map.js
- 功能: 提供JavaScript Map的中文API封装,支持映射操作和链式调用(返回新映射,不修改原始Map)
**核心特性**
- 所有修改操作均返回新映射实例,不修改原映射
- 完整支持链式调用
- 提供JSDoc参数提示
- 支持复杂键类型(数组、对象、函数等)
**命令总数:21个**
**基础操作函数** (8个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 值 = [] | Iterable> | 创建映射实例 | 映射实例 |
| 取值 | 无 | 无 | 获取原始Map的副本 | Map |
| 打印 | 无 | 无 | 打印映射内容到控制台 | 映射实例 |
| 添加 | 键, 值 | *, * | 添加键值对,返回新映射 | 映射实例 |
| 批量添加 | 条目数组 | Array> | 批量添加键值对,返回新映射 | 映射实例 |
| 删除 | 键 | * | 删除指定键的键值对,返回新映射 | 映射实例 |
| 批量删除 | ...键列表 | ...* | 批量删除多个键的键值对,返回新映射 | 映射实例 |
| 清空 | 无 | 无 | 返回空映射 | 映射实例 |
**查询与获取函数** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 包含 | 键 | * | 判断映射是否包含指定键 | boolean |
| 取 | 键 | * | 获取指定键对应的值 | * |
| 大小 | 无 | 无 | 获取映射中键值对数量 | number |
| 转数组 | 无 | 无 | 将映射转换为条目数组 | Array> |
| 取键 | 无 | 无 | 获取映射中所有的键 | Array<*> |
| 取值列表 | 无 | 无 | 获取映射中所有的值 | Array<*> |
**扩展功能函数** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 取条目 | 无 | 无 | 获取映射中所有的条目 | Array> |
| 遍历 | 回调 | Function | 遍历映射中所有键值对 | 映射实例 |
| 合并 | ...映射项 | ...Map\|...映射 | 合并多个映射,返回新映射 | 映射实例 |
| 映射值 | 回调 | Function | 对映射中的每个值执行映射操作,返回新映射 | 映射实例 |
| 过滤 | 回调 | Function | 过滤映射中的键值对,返回满足条件的键值对组成的新映射 | 映射实例 |
**静态方法** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 是否映射 | v | * | 静态方法:判断对象是否为Map实例 | boolean |
| 创建 | 可迭代 = [] | Iterable> | 静态方法:创建映射 | 映射实例 |
| 从对象 | 对象 | Object | 静态方法:从普通对象创建映射 | 映射实例 |
**使用示例**
**CommonJS 导入:**
```javascript
// 方法1: 导入整个模块
const { 映射 } = require('./zh/公共函数/zh-map.js');
// 方法2: 直接导入映射构造函数
const 映射 = require('./zh/公共函数/zh-map.js').映射;
```
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 映射 } from './zh/公共函数/zh-map.js';
// 方法2: 使用默认导入
import 映射 from './zh/公共函数/zh-map.js';
```
**基本使用示例:**
```javascript
// 创建映射并链式调用(使用 new 关键字)
const 基本映射 = new 映射()
.添加('键1', '值1')
.添加('键2', 2)
.添加('键3', { 名称: '对象值' });
console.log(基本映射.大小()); // 3
console.log(基本映射.取('键2')); // 2
// 批量操作
const 批量映射 = 基本映射.批量添加([
['键4', 4],
['键5', [1, 2, 3]]
]);
// 使用静态方法(静态方法不需要 new 关键字)
const 静态创建映射 = 映射.创建([['a', 1], ['b', 2]]);
const 从对象映射 = 映射.从对象({ 名称: '测试', 版本: '1.0' });
// 映射操作(返回新映射,不修改原映射)
const 新映射 = 基本映射
.删除('键1')
.映射值((值) => 值 * 2) // 仅对数值生效
.过滤((值) => typeof 值 === 'number');
// 合并映射
const 合并结果 = 基本映射.合并(静态创建映射);
```
#### 数学操作中文封装
**模块信息**
- 模块文件名: zh-math.js
- 路径: zh/公共函数/zh-math.js
- 功能: 提供JavaScript数学运算、三角函数、矩阵、向量运算、随机数生成等功能的中文API封装,支持链式调用
**核心特性**
- 完整的数学运算支持(基础运算、三角函数、指数对数等)
- 支持向量和矩阵操作
- 提供随机数生成和统计功能
- 支持链式调用
- 提供JSDoc参数提示
**命令总数:65个**
**基础数学运算函数** (10个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 值 = 0 | number\|string | 创建数学计算实例 | 数学实例 |
| 取值 | 无 | 无 | 获取当前数值 | number |
| 设置值 | 值 | number\|string | 设置数值 | 数学实例 |
| 加 | 数值 | number\|string | 加法运算 | 数学实例 |
| 减 | 数值 | number\|string | 减法运算 | 数学实例 |
| 乘 | 数值 | number\|string | 乘法运算 | 数学实例 |
| 除 | 数值 | number\|string | 除法运算 | 数学实例 |
| 取余 | 数值 | number\|string | 取余运算 | 数学实例 |
| 幂 | 指数 | number\|string | 幂运算 | 数学实例 |
| 平方根 | 无 | 无 | 计算平方根 | 数学实例 |
**数值处理函数** (12个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 立方根 | 无 | 无 | 计算立方根 | 数学实例 |
| 取整 | 无 | 无 | 取整数部分 | 数学实例 |
| 打印 | 无 | 无 | 打印当前值到控制台 | 数学实例 |
| 转字符串 | 无 | 无 | 转换为字符串 | 数学实例 |
| 转本地字符串 | 语言 = 'zh-CN', 选项 = {} | string, Object | 转换为本地化字符串 | 数学实例 |
| 固定小数 | 位数 = 0 | number | 转换为固定小数位的字符串 | 数学实例 |
| 精度 | 位数 | number | 转换为指定精度的字符串 | 数学实例 |
| 科学记数 | 位数 | number | 转换为科学计数法字符串 | 数学实例 |
| 绝对值 | 无 | 无 | 计算绝对值 | 数学实例 |
| 向上取整 | 无 | 无 | 向上取整 | 数学实例 |
| 向下取整 | 无 | 无 | 向下取整 | 数学实例 |
| 四舍五入 | 精度 = 0 | number | 四舍五入到指定精度 | 数学实例 |
**三角函数** (12个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 弧度转角度 | 无 | 无 | 将弧度值转换为角度值 | 数学实例 |
| 角度转弧度 | 无 | 无 | 将角度值转换为弧度值 | 数学实例 |
| 正弦 | 无 | 无 | 计算正弦值(输入弧度) | 数学实例 |
| 余弦 | 无 | 无 | 计算余弦值(输入弧度) | 数学实例 |
| 正切 | 无 | 无 | 计算正切值(输入弧度) | 数学实例 |
| 反正弦 | 无 | 无 | 计算反正弦值(返回弧度) | 数学实例 |
| 反余弦 | 无 | 无 | 计算反余弦值(返回弧度) | 数学实例 |
| 反正切 | 无 | 无 | 计算反正切值(返回弧度) | 数学实例 |
| 反正切2 | y | number | 计算反正切2值(返回弧度) | 数学实例 |
| 双曲正弦 | 无 | 无 | 计算双曲正弦值 | 数学实例 |
| 双曲余弦 | 无 | 无 | 计算双曲余弦值 | 数学实例 |
| 双曲正切 | 无 | 无 | 计算双曲正切值 | 数学实例 |
**向量类方法** (10个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 向量构造函数 | x = 0, y = 0, z = 0 | number, number, number | 创建三维向量 | 向量实例 |
| 获取长度 | 无 | 无 | 计算向量长度 | number |
| 归一化 | 无 | 无 | 归一化向量(单位向量) | 向量实例 |
| 加 | 向量 | 向量 | 向量加法 | 向量实例 |
| 减 | 向量 | 向量 | 向量减法 | 向量实例 |
| 乘 | 标量 | number | 向量与标量乘法 | 向量实例 |
| 点积 | 向量 | 向量 | 计算向量点积 | number |
| 叉积 | 向量 | 向量 | 计算向量叉积 | 向量实例 |
| 距离 | 向量 | 向量 | 计算与另一个向量的距离 | number |
| 克隆 | 无 | 无 | 创建向量副本 | 向量实例 |
**矩阵类方法** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 矩阵构造函数 | 行数, 列数 | number, number | 创建矩阵 | 矩阵实例 |
| 设置值 | 行, 列, 值 | number, number, number | 设置矩阵元素值 | 矩阵实例 |
| 获取值 | 行, 列 | number, number | 获取矩阵元素值 | number\|undefined |
| 取值 | 无 | 无 | 获取矩阵数据的深拷贝 | Array> |
| 克隆 | 无 | 无 | 创建矩阵副本 | 矩阵实例 |
**静态方法** (16个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 创建 | 值 = 0 | number\|string | 静态方法:创建数学实例 | 数学实例 |
| 距离 | x1, y1, x2, y2 | number, number, number, number | 静态方法:计算两点之间的距离 | number |
| 向量长度 | x, y | number, number | 静态方法:计算二维向量长度 | number |
| 向量点积 | x1, y1, x2, y2 | number, number, number, number | 静态方法:计算二维向量点积 | number |
| 向量叉积 | x1, y1, x2, y2 | number, number, number, number | 静态方法:计算二维向量叉积 | number |
| 归一化向量 | x, y | number, number | 静态方法:归一化二维向量 | Object |
| 随机数 | 最小值 = 0, 最大值 = 1 | number, number | 静态方法:生成随机浮点数 | number |
| 随机整数 | 最小值 = 0, 最大值 = 1 | number, number | 静态方法:生成随机整数 | number |
| 随机布尔值 | 无 | 无 | 静态方法:生成随机布尔值 | boolean |
| 随机字符串 | 长度 = 8, 字符集 = 'abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789' | number, string | 静态方法:生成随机字符串 | string |
| 矩阵乘法 | 矩阵A, 矩阵B | Array>, Array> | 静态方法:矩阵乘法运算 | Array> |
| 矩阵加法 | 矩阵A, 矩阵B | Array>, Array> | 静态方法:矩阵加法运算 | Array> |
| 矩阵标量乘法 | 矩阵, 标量 | Array>, number | 静态方法:矩阵与标量乘法 | Array> |
| 创建单位矩阵 | 大小 | number | 静态方法:创建单位矩阵 | Array> |
| 平均值 | ...数值 | ...number | 静态方法:计算平均值 | number |
| 中位数 | ...数值 | ...number | 静态方法:计算中位数 | number |
**使用示例**
**CommonJS 导入:**
```javascript
// 导入数学类
const { 数学, 向量, 矩阵 } = require('./zh/公共函数/zh-math.js');
// 直接导入构造函数
const 数学 = require('./zh/公共函数/zh-math.js').数学;
```
**ES 模块导入:**
```javascript
// 导入数学类
import { 数学, 向量, 矩阵 } from './zh/公共函数/zh-math.js';
// 使用默认导入
import 数学 from './zh/公共函数/zh-math.js';
```
**基本使用示例:**
```javascript
// 创建数学实例并链式调用(使用 new 关键字)
const 计算结果 = new 数学(10)
.加(5)
.乘(2)
.除(3)
.四舍五入(2);
console.log(计算结果.取值()); // 10
// 三角函数计算
const 角度 = new 数学(90)
.角度转弧度()
.正弦()
.取值();
console.log(角度); // 1
// 使用静态方法(静态方法不需要 new 关键字)
const 随机数 = 数学.随机数(1, 100);
const 两点距离 = 数学.距离(0, 0, 3, 4); // 5
// 向量操作
const 向量1 = new 向量(1, 2, 3);
const 向量2 = new 向量(4, 5, 6);
const 向量和 = 向量1.克隆().加(向量2);
const 点积结果 = 向量1.点积(向量2);
// 矩阵操作
const 矩阵1 = new 矩阵(2, 2);
矩阵1
.设置值(0, 0, 1)
.设置值(0, 1, 2)
.设置值(1, 0, 3)
.设置值(1, 1, 4);
// 使用静态方法进行矩阵运算
const 单位矩阵 = 数学.创建单位矩阵(3);
const 旋转矩阵 = 数学.创建旋转矩阵(45);
// 统计功能
const 平均值 = 数学.平均值(1, 2, 3, 4, 5); // 3
const 中位数 = 数学.中位数(1, 3, 5, 7, 9); // 5
```
#### 对象操作中文封装
**模块信息**
- 模块文件名: zh-object.js
- 路径: zh/公共函数/zh-object.js
- 功能: 提供JavaScript对象的中文API封装,支持ES6+ Object所有操作和链式调用(返回新对象,不修改原始对象)
**核心特性**
- 所有操作均返回新对象实例,不修改原对象
- 完整支持链式调用
- 提供JSDoc参数提示
- 包含常用扩展工具方法
**命令总数:27个**
**基础操作函数** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 值 = {} | Object | 创建对象实例 | 对象实例 |
| 取值 | 无 | 无 | 获取原始对象的浅拷贝 | Object |
| 打印 | 无 | 无 | 打印当前对象到控制台 | 对象实例 |
| 取键 | 无 | 无 | 获取对象所有可枚举属性的键名 | Array |
| 取值列表 | 无 | 无 | 获取对象所有可枚举属性的值 | Array |
| 取条目 | 无 | 无 | 获取对象所有可枚举属性的键值对 | Array> |
**属性操作函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 取属性描述 | 键 | string | 获取指定属性的属性描述符 | Object|null |
| 是否自有属性 | 键 | string | 检查对象是否拥有指定的自有属性 | boolean |
| 定义属性 | 键, 描述 | string, Object | 定义或修改对象的属性 | 对象实例 |
**对象修改函数** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 删除属性 | 键 | string | 删除对象的指定属性 | 对象实例 |
| 合并 | ...对象列表 | ...Object\|...对象 | 合并多个对象到当前对象 | 对象实例 |
| 克隆 | 无 | 无 | 创建对象的浅拷贝 | 对象实例 |
| 冻结 | 无 | 无 | 冻结对象,使其不可修改 | 对象实例 |
| 密封 | 无 | 无 | 密封对象,使其不可添加或删除属性 | 对象实例 |
**对象状态函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 判断可扩展 | 无 | 无 | 判断对象是否可扩展 | boolean |
| 判断冻结 | 无 | 无 | 判断对象是否冻结 | boolean |
| 扩展 | 源对象 | Object\|对象 | 扩展对象(浅合并) | 对象实例 |
**对象转换函数** (4个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 映射值 | 回调 | Function | 对对象的每个值应用映射函数 | 对象实例 |
| 过滤键 | 回调 | Function | 根据回调函数过滤对象的键 | 对象实例 |
| 转JSON | 缩进 = 2 | number\|string | 将对象转换为JSON字符串 | string |
| 转字符串 | 无 | 无 | 将对象转换为字符串表示 | string |
**对象扩展函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 取深拷贝 | 无 | 无 | 创建对象的深拷贝 | 对象实例 |
| 取路径值 | 路径 | string | 获取对象深层属性值(支持点号路径 a.b.c) | any |
| 设路径值 | 路径, 值 | string, any | 设置对象深层属性值(支持点号路径 a.b.c) | 对象实例 |
**静态方法** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 是否对象 | v | any | 判断值是否为对象 | boolean |
| 从条目 | 条目数组 | Array> | 从键值对数组创建对象 | 对象实例 |
| 创建 | 原型 = Object.prototype | Object|null | 创建具有指定原型的对象 | 对象实例 |
| 键 | 对象实例 | Object | 获取对象所有键名 | Array |
| 值 | 对象实例 | Object | 获取对象所有值 | Array |
| 条目 | 对象实例 | Object | 获取对象所有键值对 | Array> |
**使用示例**
**CommonJS 导入:**
```javascript
// 方法1: 导入整个模块
const { 对象 } = require('./zh/公共函数/zh-object.js');
// 方法2: 直接导入对象构造函数
const 对象 = require('./zh/公共函数/zh-object.js').对象;
```
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 对象 } from './zh/公共函数/zh-object.js';
// 方法2: 使用默认导入
import 对象 from './zh/公共函数/zh-object.js';
```
**基本使用示例:**
```javascript
// 创建对象并链式调用(使用 new 关键字)
const 基本对象 = new 对象({ 名称: '测试', 版本: '1.0' })
.合并({ 作者: '开发者' })
.映射值(v => typeof v === 'string' ? v.toUpperCase() : v)
.取值();
console.log(基本对象); // { 名称: '测试', 版本: '1.0', 作者: '开发者' }
// 深层属性操作
const 复杂对象 = new 对象({
用户: {
信息: {
名称: '张三',
年龄: 30
}
}
});
const 名称 = 复杂对象.取路径值('用户.信息.名称'); // '张三'
const 更新后的对象 = 复杂对象.设路径值('用户.信息.年龄', 31).取值();
// 使用静态方法(静态方法不需要 new 关键字)
const 空对象 = 对象.创建();
const 从条目对象 = 对象.从条目([['a', 1], ['b', 2]]);
const 是否为对象 = 对象.是否对象({}); // true
// 对象过滤和映射
const 过滤后的对象 = new 对象({
a: 1,
b: '字符串',
c: true,
d: 4
}).过滤键((k, v) => typeof v === 'number');
// JSON转换
const json字符串 = new 对象({ x: 1, y: 2 }).转JSON(2);
```
#### 异步操作中文封装
**模块信息**
- 模块文件名: zh-promise.js
- 路径: zh/公共函数/zh-promise.js
- 功能: Promise异步操作中文封装,支持链式调用和常用工具方法
**核心特性**
- 完全支持 Promise 异步操作的中文方法命名
- 支持方法链式调用,提高代码可读性
- 提供常用异步操作工具方法(并行、串行、延迟、重试、超时等)
- 同时支持 CommonJS 和 ES 模块导入方式
**命令总数:18个**
**基础操作函数** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 执行函数 | Function | 创建异步操作实例 | 异步实例 |
| 取值 | 无 | 无 | 获取原始Promise对象 | Promise对象 |
| 等待 | 无 | 无 | 获取内部Promise(可用于await) | Promise对象 |
| 成功 | 回调 | Function | 添加成功回调处理 | 异步实例(支持链式调用) |
| 失败 | 回调 | Function | 添加失败回调处理 | 异步实例(支持链式调用) |
| 总是 | 回调 | Function | 添加最终回调处理 | 异步实例(支持链式调用) |
**实例方法** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 延迟 | 毫秒 | number | 创建指定延迟的异步操作 | 异步实例 |
| 映射 | 回调 | Function | 映射Promise的结果值到新值 | 异步实例(支持链式调用) |
| 捕获错误 | 回调 | Function | 捕获前序操作中的错误并返回新状态 | 异步实例 |
**静态方法** (10个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 成功 | 值 = undefined | * | 静态方法:创建已成功完成的异步操作 | 异步实例 |
| 失败 | 错误 | Error\|* | 静态方法:创建已失败的异步操作 | 异步实例 |
| 并行 | 异步列表 | Array | 静态方法:并行执行多个异步操作 | 异步实例 |
| 任一 | 异步列表 | Array | 静态方法:并行执行多个异步操作,任一完成即返回 | 异步实例 |
| 所有 | 异步列表 | Array | 静态方法:并行执行所有异步操作,返回所有结果状态 | 异步实例 |
| 串行 | 异步函数列表, 初始值 = undefined | Array, * | 静态方法:串行执行异步函数列表 | 异步实例 |
| 延迟 | 毫秒, 值 = undefined | number, * | 静态方法:创建延迟执行的异步操作 | 异步实例 |
| 重试 | 异步函数, 最大次数, 间隔毫秒 = 1000 | Function, number, number | 静态方法:自动重试异步操作 | 异步实例 |
| 超时 | 异步操作, 超时毫秒, 超时错误 | Promise\|Function\|*, number, Error | 静态方法:为异步操作添加超时控制 | 异步实例 |
| 包装 | 同步函数 | Function | 静态方法:将同步函数包装为异步操作 | 异步实例 |
**使用示例**
**CommonJS 导入:**
```javascript
// 方法1: 导入整个模块
const { 异步 } = require('./zh/公共函数/zh-promise.js');
// 方法2: 直接导入异步构造函数
const 异步 = require('./zh/公共函数/zh-promise.js').异步;
```
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 异步 } from './zh/公共函数/zh-promise.js';
// 方法2: 使用默认导入
import 异步 from './zh/公共函数/zh-promise.js';
```
**基本使用示例:**
```javascript
// 创建异步操作
const 异步实例 = new 异步((resolve, reject) => {
setTimeout(() => {
resolve('操作成功');
}, 1000);
});
// 链式调用
异步实例
.成功(结果 => {
console.log('成功:', 结果);
return 结果 + ' 处理后';
})
.映射(值 => 值.toUpperCase())
.失败(错误 => {
console.error('失败:', 错误);
})
.总是(() => {
console.log('操作完成');
});
// 使用静态方法
// 并行执行多个异步操作
const 并行结果 = await 异步.并行([
异步.延迟(1000, '任务1'),
异步.延迟(1500, '任务2'),
异步.延迟(500, '任务3')
]).等待();
// 串行执行异步函数
const 串行结果 = await 异步.串行([
(prev) => { console.log(prev); return '第一步'; },
(prev) => { console.log(prev); return '第二步'; },
(prev) => { console.log(prev); return '第三步'; }
], '初始值').等待();
// 带重试的异步操作
异步.重试(
async () => {
// 可能失败的操作
const result = await someUnreliableOperation();
return result;
},
3, // 最多重试3次
2000 // 每次重试间隔2秒
).成功(console.log).失败(console.error);
// 带超时控制的异步操作
异步.超时(
someLongOperation(),
5000, // 5秒超时
new Error('操作超时,请稍后再试')
).成功(console.log).失败(console.error);
```
#### 队列操作中文封装
**模块信息**
- 模块文件名: zh-queue.js
- 路径: zh/公共函数/zh-queue.js
- 功能: 提供JavaScript队列数据结构的中文API封装,支持队列的基本操作、链式调用和迭代器
**核心特性**
- 支持队列的基本操作(入队、出队、查看等)
- 完整支持链式调用
- 提供JSDoc参数提示
- 内置迭代器支持
- 支持批量操作和高级功能
**命令总数:30个**
**基础操作函数** (11个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 初始数据 = [] | Array | 创建队列实例 | 队列实例 |
| 取值 | 无 | 无 | 获取队列数据数组的副本 | Array |
| 入队 | ...元素 | ...* | 添加元素到队尾 | 队列实例 |
| 出队 | 无 | 无 | 移除并返回队首元素 | * |
| 查看队首 | 无 | 无 | 查看队首元素但不移除 | * |
| 查看队尾 | 无 | 无 | 查看队尾元素但不移除 | * |
| 大小 | 无 | 无 | 获取队列中元素数量 | number |
| 是否为空 | 无 | 无 | 判断队列是否为空 | boolean |
| 清空 | 无 | 无 | 清空队列中的所有元素 | 队列实例 |
| 克隆 | 无 | 无 | 创建当前队列的深拷贝 | 队列实例 |
| 转字符串 | 分隔符 = ', ' | string | 将队列转换为字符串 | string |
**查询与访问函数** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 查找索引 | 元素 | * | 查找指定元素在队列中的索引 | number |
| 包含 | 元素 | * | 判断队列是否包含指定元素 | boolean |
| 获取 | 索引 | number | 获取指定索引位置的元素 | * |
| 最大值 | 比较函数 | Function | 获取队列中的最大值 | * |
| 最小值 | 比较函数 | Function | 获取队列中的最小值 | * |
**批量与扩展操作函数** (9个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 遍历 | 回调 | Function | 遍历队列中所有元素 | 队列实例 |
| 批量入队 | 元素数组 | Array | 批量将多个元素入队 | 队列实例 |
| 批量出队 | 数量 | number | 批量出队指定数量的元素 | Array |
| 映射 | 回调 | Function | 对队列中每个元素执行映射操作,返回新队列 | 队列实例 |
| 过滤 | 回调 | Function | 过滤队列中元素,返回满足条件的元素组成的新队列 | 队列实例 |
| 归约 | 回调, 初始值 | Function, * | 对队列中元素执行归约操作 | * |
| 排序 | 比较函数 | Function | 对队列中元素进行排序,返回新队列 | 队列实例 |
| 执行 | 操作 | Function | 在队列数据上执行自定义操作 | 队列实例或操作结果 |
| [Symbol.iterator] | 无 | 无 | 迭代器实现(先进先出顺序) | Generator |
**静态方法** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 创建 | 无 | 无 | 静态方法:创建空队列 | 队列实例 |
| 从数组 | 数组 | Array | 静态方法:从数组创建队列 | 队列实例 |
| 合并 | ...队列列表 | ...队列 | 静态方法:合并多个队列 | 队列实例 |
| 是队列 | 对象 | * | 静态方法:判断对象是否是队列实例 | boolean |
| 创建优先队列 | 比较函数 = (a,b)=>a-b | Function | 静态方法:创建优先队列 | 队列实例 |
| 检查循环依赖 | 节点, 依赖函数 | *, Function | 静态方法:检查节点间的循环依赖 | boolean |
**使用示例**
**CommonJS 导入:**
```javascript
// 方法1: 导入整个模块
const { 队列 } = require('./zh/公共函数/zh-queue.js');
// 方法2: 直接导入队列构造函数
const 队列 = require('./zh/公共函数/zh-queue.js').队列;
```
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 队列 } from './zh/公共函数/zh-queue.js';
// 方法2: 使用默认导入
import 队列 from './zh/公共函数/zh-queue.js';
```
**基本使用示例:**
```javascript
// 创建队列并链式调用
const 基本队列 = new 队列([1, 2, 3])
.入队(4, 5)
.入队(6);
console.log(基本队列.大小()); // 6
console.log(基本队列.查看队首()); // 1
console.log(基本队列.出队()); // 1
console.log(基本队列.大小()); // 5
// 批量操作
const 批量队列 = 基本队列.批量入队([7, 8, 9]);
const 出队结果 = 批量队列.批量出队(2); // [2, 3]
// 数据处理操作
const 处理后的队列 = 基本队列
.过滤(元素 => 元素 > 3)
.映射(元素 => 元素 * 2)
.排序();
// 使用迭代器
for (const 元素 of 基本队列) {
console.log(元素);
}
// 静态方法使用
const 空队列 = 队列.创建();
const 数组队列 = 队列.从数组([10, 20, 30]);
const 合并队列 = 队列.合并(基本队列, 数组队列);
// 优先队列示例
const 优先队列 = 队列.创建优先队列((a, b) => b - a); // 降序优先
优先队列.入队(5, 1, 9, 3);
console.log(优先队列.出队()); // 9
console.log(优先队列.出队()); // 5
```
#### 集合操作中文封装
**模块信息**
- 模块文件名: zh-set.js
- 路径: zh/公共函数/zh-set.js
- 功能: 提供JavaScript Set集合的中文API封装,支持集合操作和链式调用(返回新集合,不修改原始Set)
**核心特性**
- 所有修改操作均返回新集合实例,不修改原集合
- 完整支持链式调用
- 提供JSDoc参数提示
- 支持集合运算(并集、交集、差集、补集)
**命令总数:17个**
**基础操作函数** (10个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 值 = [] | Iterable | 创建集合实例 | 集合实例 |
| 取值 | 无 | 无 | 获取原始Set的副本 | Set |
| 打印 | 无 | 无 | 打印集合内容到控制台 | 集合实例 |
| 添加 | ...元素 | ...* | 添加元素到集合,返回新集合 | 集合实例 |
| 删除 | 元素 | * | 从集合删除元素,返回新集合 | 集合实例 |
| 包含 | 元素 | * | 判断集合是否包含指定元素 | boolean |
| 清空 | 无 | 无 | 返回空集合 | 集合实例 |
| 大小 | 无 | 无 | 获取集合中元素数量 | number |
| 转数组 | 无 | 无 | 将集合转换为数组 | Array |
| 转字符串 | 无 | 无 | 将集合转换为字符串 | string |
**集合运算函数** (4个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 并集 | ...集合项 | ...Set\|...集合 | 计算当前集合与其他集合的并集 | 集合实例 |
| 交集 | ...集合项 | ...Set\|...集合 | 计算当前集合与其他集合的交集 | 集合实例 |
| 差集 | ...集合项 | ...Set\|...集合 | 计算当前集合与其他集合的差集 | 集合实例 |
| 补集 | ...集合项 | ...Set\|...集合 | 计算当前集合与其他集合的补集 | 集合实例 |
**遍历函数** (1个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 遍历 | 回调 | Function | 遍历集合中所有元素 | 集合实例 |
**静态方法** (2个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 是否集合 | v | * | 静态方法:判断对象是否为Set实例 | boolean |
| 创建 | 可迭代 = [] | Iterable | 静态方法:创建集合 | 集合实例 |
**使用示例**
**CommonJS 导入:**
```javascript
// 方法1: 导入整个模块
const { 集合 } = require('./zh/公共函数/zh-set.js');
// 方法2: 直接导入集合构造函数
const 集合 = require('./zh/公共函数/zh-set.js').集合;
```
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 集合 } from './zh/公共函数/zh-set.js';
// 方法2: 使用默认导入
import 集合 from './zh/公共函数/zh-set.js';
```
**基本使用示例:**
```javascript
// 创建集合并链式调用
const 基本集合 = new 集合([1, 2, 3])
.添加(4, 5)
.添加(6);
console.log(基本集合.大小()); // 6
console.log(基本集合.包含(3)); // true
// 删除元素(返回新集合,不修改原集合)
const 新集合 = 基本集合.删除(3);
console.log(基本集合.包含(3)); // true
console.log(新集合.包含(3)); // false
// 集合运算
const 集合A = new 集合([1, 2, 3, 4]);
const 集合B = new 集合([3, 4, 5, 6]);
const 并集结果 = 集合A.并集(集合B); // {1, 2, 3, 4, 5, 6}
const 交集结果 = 集合A.交集(集合B); // {3, 4}
const 差集结果 = 集合A.差集(集合B); // {1, 2}
const 补集结果 = 集合A.补集(集合B); // {1, 2, 5, 6}
// 转换操作
console.log(集合A.转数组()); // [1, 2, 3, 4]
console.log(集合A.转字符串()); // "1,2,3,4"
// 遍历操作
集合A.遍历(元素 => {
console.log(元素);
});
// 静态方法使用
const 空集合 = 集合.创建();
const 数组集合 = 集合.创建([7, 8, 9]);
console.log(集合.是否集合(数组集合)); // true
```
#### 栈操作中文封装
**模块信息**
- 模块文件名: zh-stack.js
- 路径: zh/公共函数/zh-stack.js
- 功能: 提供JavaScript栈数据结构的中文API封装,支持栈的基本操作、链式调用、迭代器和栈特定算法
**核心特性**
- 完整支持链式调用
- 提供JSDoc参数提示
- 支持迭代器和生成器
- 内置括号匹配算法
**命令总数:26个**
**基础操作函数** (8个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 初始数据 = [] | Array | 创建栈实例 | 栈实例 |
| 取值 | 无 | 无 | 获取栈数据数组的副本 | Array |
| 入栈 | 元素 | * | 入栈操作 | 栈实例 |
| 出栈 | 无 | 无 | 出栈操作 | * |
| 查看栈顶 | 无 | 无 | 查看栈顶元素但不移除 | * |
| 大小 | 无 | 无 | 获取栈的大小 | number |
| 是否为空 | 无 | 无 | 判断栈是否为空 | boolean |
| 清空 | 无 | 无 | 清空栈 | 栈实例 |
**遍历与转换函数** (8个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 遍历 | 回调 | Function | 遍历栈中的所有元素 | 栈实例 |
| 反向遍历 | 回调 | Function | 反向遍历栈中的所有元素 | 栈实例 |
| 映射 | 回调 | Function | 映射操作,返回新数组 | Array |
| 过滤 | 回调 | Function | 过滤操作,返回新数组 | Array |
| 归约 | 回调, 初始值 | Function, any | 归约操作,从左到右 | any |
| 转字符串 | 无 | 无 | 转换为字符串 | string |
| 转JSON | 无 | 无 | 转换为JSON字符串 | string |
| 复制 | 无 | 无 | 复制栈实例 | 栈实例 |
**查询函数** (7个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 查找 | 回调 | Function | 查找元素,返回第一个匹配的元素 | any |
| 查找索引 | 回调 | Function | 查找元素索引,返回第一个匹配的元素索引 | number |
| 包含 | 元素 | * | 判断是否包含指定元素 | boolean |
| 所有满足 | 回调 | Function | 判断是否所有元素都满足条件 | boolean |
| 存在满足 | 回调 | Function | 判断是否至少有一个元素满足条件 | boolean |
| 迭代器 | 无 | 无 | Symbol.iterator实现 | Iterator |
| 生成器 | 无 | 无 | 生成器方法,用于for...of循环 | Generator |
**静态方法** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 从JSON | jsonString | string | 从JSON字符串创建栈实例 | 栈实例 |
| 创建 | ...元素 | ...* | 创建新的栈实例 | 栈实例 |
| 括号匹配 | 表达式 | string | 静态方法:检查括号是否匹配 | boolean |
**使用示例**
**CommonJS 导入:**
```javascript
// 方法1: 导入整个模块
const { 栈 } = require('./zh/公共函数/zh-stack.js');
// 方法2: 直接导入栈构造函数
const 栈 = require('./zh/公共函数/zh-stack.js').栈;
```
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 栈 } from './zh/公共函数/zh-stack.js';
// 方法2: 使用默认导入
import 栈 from './zh/公共函数/zh-stack.js';
```
**基本使用示例:**
```javascript
// 创建栈并链式调用
const 基本栈 = new 栈([1, 2, 3])
.入栈(4)
.入栈(5);
console.log(基本栈.大小()); // 5
console.log(基本栈.查看栈顶()); // 5
console.log(基本栈.出栈()); // 5
console.log(基本栈.大小()); // 4
// 判断栈状态
console.log(基本栈.是否为空()); // false
基本栈.清空();
console.log(基本栈.是否为空()); // true
// 遍历操作
const 数据栈 = new 栈(['a', 'b', 'c']);
数据栈.遍历((元素, 索引) => {
console.log(`索引 ${索引}: ${元素}`);
});
// 反向遍历
数据栈.反向遍历((元素, 索引) => {
console.log(`反向索引 ${索引}: ${元素}`);
});
// 数据处理方法
const 数字栈 = new 栈([1, 2, 3, 4, 5]);
const 平方栈 = 数字栈.映射(x => x * x); // [1, 4, 9, 16, 25]
const 偶数栈 = 数字栈.过滤(x => x % 2 === 0); // [2, 4]
const 和 = 数字栈.归约((累计, 当前) => 累计 + 当前, 0); // 15
// 查询方法
console.log(数字栈.包含(3)); // true
console.log(数字栈.查找(x => x > 3)); // 4
console.log(数字栈.查找索引(x => x > 3)); // 3
console.log(数字栈.所有满足(x => x > 0)); // true
console.log(数字栈.存在满足(x => x > 10)); // false
// 迭代器使用
for (const 元素 of 数据栈) {
console.log(元素);
}
// 生成器使用
for (const 元素 of 数据栈.生成器()) {
console.log(元素);
}
// 转换操作
console.log(数字栈.转字符串()); // "1,2,3,4,5"
const jsonStr = 数字栈.转JSON();
console.log(jsonStr); // "[1,2,3,4,5]"
// 从JSON创建
const 从JSON创建的栈 = 栈.从JSON('[6,7,8,9,10]');
console.log(从JSON创建的栈.大小()); // 5
// 静态创建方法
const 静态创建栈 = 栈.创建(11, 12, 13);
console.log(静态创建栈.大小()); // 3
// 括号匹配算法示例
console.log(栈.括号匹配('(){}[]')); // true
console.log(栈.括号匹配('([)]')); // false
console.log(栈.括号匹配('{[()]}')); // true
console.log(栈.括号匹配('{[(])}')); // false
console.log(栈.括号匹配('()')); // true
console.log(栈.括号匹配('(')); // false
```
#### 字符串操作中文封装
**模块信息**
- 模块文件名: zh-string.js
- 路径: zh/公共函数/zh-string.js
- 功能: 提供中文字符串操作封装,支持链式调用和丰富的字符串处理方法
**核心特性**
- 支持所有标准字符串操作的中文命名封装
- 提供丰富的扩展功能,如驼峰转换、HTML转义等
- 支持链式调用,提高代码可读性
- 同时支持 CommonJS 和 ES 模块导出
- 包含完整的编码、解码、格式转换等功能
- 提供JSDoc参数提示,方便开发使用
**命令总数:80+**
**基本操作函数** (16个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 内容 = "" | string\|any | 创建字符串封装对象 | 字符串实例 |
| 值() | 无 | 无 | 获取原始字符串值 | string |
| toString() | 无 | 无 | 兼容 toString | string |
| valueOf() | 无 | 无 | 兼容 valueOf | string |
| 打印() | 无 | 无 | 打印当前值 | 字符串实例 |
| 去空格() | 无 | 无 | 去掉首尾空白 | 字符串实例 |
| 去前空格() | 无 | 无 | 去掉开头空白 | 字符串实例 |
| 去后空格() | 无 | 无 | 去掉结尾空白 | 字符串实例 |
| 大写() | 无 | 无 | 全部转为大写 | 字符串实例 |
| 小写() | 无 | 无 | 全部转为小写 | 字符串实例 |
| 首字母大写() | 无 | 无 | 仅首字母大写 | 字符串实例 |
| 首字母小写() | 无 | 无 | 仅首字母小写 | 字符串实例 |
| 反转() | 无 | 无 | 反转字符串 | 字符串实例 |
| 重复() | 次数 | number | 重复字符串n次 | 字符串实例 |
| 拼接() | ...内容 | string[] | 拼接字符串 | 字符串实例 |
**检索与判断函数** (11个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 取长度() | 无 | 无 | 获取字符串长度 | number |
| 是否空() | 无 | 无 | 判断是否为空字符串 | boolean |
| 是否空白() | 无 | 无 | 判断是否全为空白 | boolean |
| 查找() | 子串, 起始=0 | string, number | 查找子串位置 | number |
| 反向查找() | 子串, 起始 | string, number | 反向查找子串 | number |
| 包含() | 子串 | string | 判断是否包含子串 | boolean |
| 以开头() | 前缀, 起始=0 | string, number | 判断是否以某前缀开始 | boolean |
| 以结尾() | 后缀, 长度 | string, number | 判断是否以某后缀结束 | boolean |
| 搜索() | 正则 | RegExp\|string | 正则搜索 | number |
| 本地比较() | 目标, locales, options | string, string[], object | 本地比较字符串 | number |
**正则与匹配** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 匹配() | 正则 | RegExp\|string | 正则匹配 | RegExpMatchArray\|null |
| 匹配所有() | 正则 | RegExp | 匹配所有并返回迭代器 | IterableIterator |
| 匹配所有数组() | 正则 | RegExp | 匹配所有并返回数组 | Array |
**替换函数** (2个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 替换() | 查找, 替换为 | string\|RegExp, string\|Function | 替换子串 | 字符串实例 |
| 替换所有() | 查找, 替换为 | string\|RegExp, string\|Function | 替换所有子串 | 字符串实例 |
**截取与切分** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 取子串() | 开始, 结束 | number, number | 截取子串 | 字符串实例 |
| 取子片段() | 开始, 结束 | number, number | 取片段 | 字符串实例 |
| 截取() | 起始, 长度 | number, number | 截取(旧方法) | 字符串实例 |
| 拆分() | 分隔符, 限制 | string\|RegExp, number | 拆分为数组 | string[] |
| 拆分为行() | 无 | 无 | 按行拆分 | string[] |
**字符与编码** (4个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 取字符() | 位置 | number | 获取指定位置字符 | string |
| 取编码() | 位置 | number | 获取字符编码 | number |
| 码点取字符() | 位置 | number | 获取码点 | number\|undefined |
**填充函数** (2个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 填充前() | 长度, 填充符=" " | number, string | 左填充 | 字符串实例 |
| 填充后() | 长度, 填充符=" " | number, string | 右填充 | 字符串实例 |
**扩展功能函数** (24个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 驼峰() | 无 | 无 | 转为驼峰命名 | 字符串实例 |
| 帕斯卡() | 无 | 无 | 转为帕斯卡命名 | 字符串实例 |
| 下划线() | 无 | 无 | 转为下划线命名 | 字符串实例 |
| 中划线() | 无 | 无 | 转为中划线命名 | 字符串实例 |
| 标题式() | 无 | 无 | 转为标题式 | 字符串实例 |
| 去除所有空格() | 无 | 无 | 去除所有空格 | 字符串实例 |
| 转为数组() | 无 | 无 | 转为字符数组 | string[] |
| 转为JSON() | 无 | 无 | 尝试解析为JSON | any |
| 从JSON() | 无 | 无 | 从JSON解析并覆盖 | 字符串实例 |
| 编码URI() | 无 | 无 | URL编码 | 字符串实例 |
| 编码URI组件() | 无 | 无 | URL编码组件 | 字符串实例 |
| 解码URI() | 无 | 无 | URL解码 | 字符串实例 |
| 解码URI组件() | 无 | 无 | URL解码组件 | 字符串实例 |
| 编码Base64() | 无 | 无 | Base64编码 | 字符串实例 |
| 解码Base64() | 无 | 无 | Base64解码 | 字符串实例 |
| 截断并填充() | 长度, 填充符=" " | number, string | 截断并填充 | 字符串实例 |
| 转义HTML() | 无 | 无 | HTML转义 | 字符串实例 |
| 反转义HTML() | 无 | 无 | HTML反转义 | 字符串实例 |
| 计数() | 子串 | string\|RegExp | 计数子串出现次数 | number |
| 合并空白() | 无 | 无 | 合并连续空白 | 字符串实例 |
| 包含单词() | 单词 | string | 判断是否包含完整单词 | boolean |
| 包含_忽略大小写() | 子串 | string | 忽略大小写包含 | boolean |
| 替换_忽略大小写_所有() | 查找, 替换为 | string, string | 忽略大小写替换所有 | 字符串实例 |
**静态方法** (2个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 从编码() | ...码 | number[] | 从编码创建字符串 | 字符串实例 |
| 从码点() | ...码点 | number[] | 从码点创建字符串 | 字符串实例 |
**使用示例**
**CommonJS 导入:**
```javascript
const { 字符串 } = require('./zh/公共函数/zh-string');
```
**基本使用示例:**
```javascript
// 创建字符串实例
const 文本 = new 字符串(' Hello World! ');
// 链式调用示例
const 处理后的文本 = 文本
.去空格()
.首字母大写()
.替换('World', 'JavaScript')
.拼接('!')
.值();
console.log(处理后的文本); // "Hello Javascript!"
// 格式转换示例
const 变量名 = new 字符串('user-name')
.驼峰()
.值();
console.log(变量名); // "userName"
// 编码解码示例
const url = new 字符串('https://测试.com?name=测试')
.编码URI()
.值();
console.log(url); // URL编码后的字符串
// 安全操作示例
const html = new 字符串('')
.转义HTML()
.值();
console.log(html); // "<script>alert(1)</script>"
// 静态方法使用
const 字符 = 字符串.从编码(65, 66, 67);
console.log(字符.值()); // "ABC"
```
#### 计时器操作中文封装
**模块信息**
- 模块文件名: zh-timer.js
- 路径: zh/公共函数/zh-timer.js
- 功能: 提供计时器、秒表和定时器管理器的中文封装,支持倒计时、间隔执行、链式控制等功能
**核心特性**
- 支持计时器、秒表和定时器管理器三种时间工具
- 链式调用API设计,操作流畅
- 完整的状态管理(运行中、暂停中、已停止)
- 支持回调函数和事件处理
- 提供静态方法便捷创建各类计时器
- 提供JSDoc参数提示,方便开发使用
**命令总数:57个**
**计时器命令列表** (14个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| **基础操作函数** |
| 开始() | 无 | - | 开始或继续计时 | 计时器实例(支持链式调用) |
| 暂停() | 无 | - | 暂停计时 | 计时器实例(支持链式调用) |
| 停止() | 无 | - | 停止计时并重置状态 | 计时器实例(支持链式调用) |
| 重置() | 无 | - | 重置计时器并重新开始 | 计时器实例(支持链式调用) |
| **查询与状态函数** |
| 获取状态() | 无 | - | 获取计时器的当前状态 | 字符串:'已停止'、'运行中'或'暂停中' |
| 获取剩余时间() | 无 | - | 获取剩余时间(毫秒) | 数字(毫秒) |
| 获取经过时间() | 无 | - | 获取已经经过的时间(毫秒) | 数字(毫秒) |
| **回调函数设置** |
| 回调() | 函数 | Function | 设置计时结束时的回调函数 | 计时器实例(支持链式调用) |
| 完成回调() | 函数 | Function | 设置计时完成时的回调函数 | 计时器实例(支持链式调用) |
| 更新回调() | 函数 | Function | 设置更新回调函数(倒计时模式下每秒调用) | 计时器实例(支持链式调用) |
| **静态方法** |
| 创建() | 时长, 选项 | number, Object | 创建计时器实例 | 计时器实例 |
| 倒计时() | 秒数, 选项 | number, Object | 创建倒计时器实例 | 计时器实例 |
| 间隔执行() | 间隔毫秒, 选项 | number, Object | 创建间隔执行器实例 | 计时器实例 |
| 延迟() | 延迟毫秒, 回调 | number, Function | 创建并启动延迟执行器 | 已启动的延迟执行器实例 |
**秒表命令列表** (9个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| **基础操作函数** |
| 开始() | 无 | - | 开始或继续计时 | 秒表实例(支持链式调用) |
| 暂停() | 无 | - | 暂停计时 | 秒表实例(支持链式调用) |
| 停止() | 无 | - | 停止计时并重置所有状态 | 秒表实例(支持链式调用) |
| 重置() | 无 | - | 重置秒表但保持当前状态 | 秒表实例(支持链式调用) |
| 计次() | 无 | - | 记录当前计次时间 | 数字(毫秒)或null |
| **查询函数** |
| 获取经过时间() | 无 | - | 获取经过时间(毫秒) | 数字(毫秒) |
| 获取经过时间格式化() | 格式 | string | 获取经过时间的格式化字符串 | 字符串(格式化时间) |
| 获取计次记录() | 无 | - | 获取所有计次记录 | 数组(毫秒数组) |
| 获取状态() | 无 | - | 获取秒表当前状态 | 字符串:'已停止'、'运行中'或'暂停中' |
**定时器管理器命令列表** (10个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| **定时器管理** |
| 添加定时器() | 名称, 定时器 | string/symbol, 计时器/秒表 | 添加定时器到管理器 | 定时器管理器实例(支持链式调用) |
| 获取定时器() | 名称 | string/symbol | 获取指定名称的定时器 | 计时器/秒表实例或null |
| 移除定时器() | 名称 | string/symbol | 移除指定名称的定时器 | 定时器管理器实例(支持链式调用) |
| 清空所有定时器() | 无 | - | 清空所有定时器 | 定时器管理器实例(支持链式调用) |
| **批量操作** |
| 开始定时器() | 名称 | string/symbol | 开始指定名称的定时器 | 定时器管理器实例(支持链式调用) |
| 暂停定时器() | 名称 | string/symbol | 暂停指定名称的定时器 | 定时器管理器实例(支持链式调用) |
| 停止定时器() | 名称 | string/symbol | 停止指定名称的定时器 | 定时器管理器实例(支持链式调用) |
| 开始所有定时器() | 无 | - | 开始所有定时器 | 定时器管理器实例(支持链式调用) |
| 暂停所有定时器() | 无 | - | 暂停所有定时器 | 定时器管理器实例(支持链式调用) |
| 停止所有定时器() | 无 | - | 停止所有定时器 | 定时器管理器实例(支持链式调用) |
**使用示例**
**CommonJS 导入:**
```javascript
const { 计时器, 秒表, 定时器管理器 } = require('./zh/公共函数/zh-timer.js');
```
**基本使用示例:**
```javascript
// 创建计时器示例
const 定时器 = new 计时器(2000, { 自动开始: false, 循环: true });
定时器
.回调(() => console.log('计时完成'))
.开始();
// 使用静态方法创建倒计时器
const 倒计时器 = 计时器.倒计时(10, { 自动开始: true });
倒计时器
.更新回调((剩余秒数) => console.log(`剩余 ${剩余秒数} 秒`))
.完成回调(() => console.log('倒计时结束'));
// 秒表示例
const 秒表实例 = new 秒表();
秒表实例.开始();
// 5秒后记录计次
setTimeout(() => {
const 时间 = 秒表实例.计次();
console.log(`第一次计次: ${时间} 毫秒`);
// 再过3秒获取格式化时间
setTimeout(() => {
console.log(`经过时间: ${秒表实例.获取经过时间格式化()}`);
秒表实例.stop();
}, 3000);
}, 5000);
// 定时器管理器示例
const 管理器 = new 定时器管理器();
管理器
.添加定时器('定时器1', new 计时器(1000, { 循环: true }))
.添加定时器('倒计时1', 计时器.倒计时(5))
.添加定时器('秒表1', new 秒表())
.开始所有定时器();
// 10秒后停止并移除指定定时器
setTimeout(() => {
管理器.停止定时器('定时器1').移除定时器('定时器1');
}, 10000);
```
### 前端函数模块
| 导出规范 | 源码示例 | 使用场景 |
| --- | --- | --- |
| **ES Module**(默认) | `export { 数组 };`
`export default 数组;` | 前端 import导入
#### DOM操作中文封装
**模块信息**
- 模块文件名: zh-dom.js
- 路径: zh/前端/zh-dom.js
- 功能: 提供DOM操作的中文API封装,支持元素查找、创建、类操作、属性设置、事件处理、元素关系管理等功能
**核心特性**
- 完整支持链式调用,提高代码可读性
- 提供JSDoc参数提示,方便开发使用
- 支持元素查找、创建、修改和删除
- 提供事件监听和触发功能
- 支持元素关系管理和位置操作
- 包含数据属性操作和样式管理
**命令总数:60个**
**元素查找与创建函数** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 目标 | HTMLElement\|string | 创建DOM操作实例 | DOM操作实例 |
| 查找 | 选择器 | string | 查找子元素 | DOM操作实例或null |
| 查找所有 | 选择器 | string | 查找所有子元素 | DOM操作实例数组 |
| 创建元素 | 标签名, 属性 = {}, 内容 = '' | string, Object, string\|HTMLElement\|DOM操作\|Array | 静态方法:创建元素 | DOM操作实例 |
| 取值 | 无 | 无 | 获取原始DOM元素 | HTMLElement或null |
**类操作函数** (4个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 添加类 | ...类名列表 | string... | 添加类名 | DOM操作实例(链式调用) |
| 删除类 | ...类名列表 | string... | 删除类名 | DOM操作实例(链式调用) |
| 切换类 | 类名, 状态 | string, boolean | 切换类名状态 | DOM操作实例(链式调用) |
| 包含类 | 类名 | string | 判断是否包含类名 | boolean |
**内容操作函数** (4个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 设置文本 | 文本 | string | 设置文本内容 | DOM操作实例(链式调用) |
| 获取文本 | 无 | 无 | 获取文本内容 | string |
| 设置HTML | HTML | string | 设置HTML内容 | DOM操作实例(链式调用) |
| 获取HTML | 无 | 无 | 获取HTML内容 | string |
**属性操作函数** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 设置属性 | 键, 值 | string, string | 设置属性 | DOM操作实例(链式调用) |
| 获取属性 | 键 | string | 获取属性值 | string或null |
| 删除属性 | 键 | string | 删除属性 | DOM操作实例(链式调用) |
| 有属性 | 键 | string | 判断是否有属性 | boolean |
| 设置多个属性 | 属性对象 | Object | 设置多个属性 | DOM操作实例(链式调用) |
**样式操作函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 设置样式 | 键, 值 | string, string | 设置样式 | DOM操作实例(链式调用) |
| 设置多个样式 | 样式对象 | Object | 设置多个样式 | DOM操作实例(链式调用) |
| 获取样式 | 键 | string | 获取计算样式 | string |
**事件处理函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 事件监听 | 事件名, 回调, 选项 = false | string, Function, boolean\|Object | 添加事件监听 | DOM操作实例(链式调用) |
| 移除事件监听 | 事件名, 回调, 选项 = false | string, Function, boolean\|Object | 移除事件监听 | DOM操作实例(链式调用) |
| 触发事件 | 事件名, 事件数据 = {} | string, Object | 触发自定义事件 | DOM操作实例(链式调用) |
**元素关系函数** (11个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 添加子元素 | 子元素 | HTMLElement\|DOM操作 | 添加子元素 | DOM操作实例(链式调用) |
| 在前面添加子元素 | 参考元素, 子元素 | HTMLElement\|DOM操作, HTMLElement\|DOM操作 | 在指定位置添加子元素 | DOM操作实例(链式调用) |
| 移除子元素 | 子元素 | HTMLElement\|DOM操作 | 移除子元素 | DOM操作实例(链式调用) |
| 移除 | 无 | 无 | 移除自身 | DOM操作实例(链式调用) |
| 克隆 | 深克隆 = true | boolean | 克隆元素 | DOM操作实例 |
| 获取父元素 | 无 | 无 | 获取父元素 | DOM操作实例或null |
| 获取子元素 | 无 | 无 | 获取所有子元素 | DOM操作实例数组 |
| 获取兄弟元素 | 无 | 无 | 获取所有兄弟元素 | DOM操作实例数组 |
| 获取前一个兄弟元素 | 无 | 无 | 获取前一个兄弟元素 | DOM操作实例或null |
| 获取后一个兄弟元素 | 无 | 无 | 获取后一个兄弟元素 | DOM操作实例或null |
| addTo | 父元素 | HTMLElement\|DOM操作 | 将自身添加到父元素 | DOM操作实例(链式调用) |
**位置与滚动函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 获取位置 | 无 | 无 | 获取元素位置和大小 | DOMRect |
| 是否在可视区域 | 完全在视口内 = false | boolean | 检查元素是否在可视区域内 | boolean |
| 滚动到 | 选项 = {} | Object | 滚动到元素 | DOM操作实例(链式调用) |
**焦点操作函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 聚焦 | 选项 = {} | Object | 设置焦点 | DOM操作实例(链式调用) |
| 失焦 | 无 | 无 | 移除焦点 | DOM操作实例(链式调用) |
| 有焦点 | 无 | 无 | 判断是否有焦点 | boolean |
**数据属性操作函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 设置数据 | 键, 值 | string, string | 设置数据属性 | DOM操作实例(链式调用) |
| 获取数据 | 键 | string | 获取数据属性 | string或undefined |
| 获取所有数据 | 无 | 无 | 获取所有数据属性 | Object |
**静态工厂方法** (2个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 查找 | 选择器 | string | 静态方法:查找元素 | DOM操作实例 |
| 查找所有 | 选择器 | string | 静态方法:查找所有元素 | DOM操作实例数组 |
**使用示例**
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { DOM操作 } from './zh/前端/zh-dom.js';
// 方法2: 使用默认导入
import DOM操作 from './zh/前端/zh-dom.js';
```
**基本使用示例:**
```javascript
// 创建DOM操作实例(使用选择器)
const 元素 = new DOM操作('#myElement');
// 链式调用示例
元素
.添加类('active', 'visible')
.设置样式('color', 'red')
.设置多个样式({
fontSize: '16px',
backgroundColor: '#f0f0f0'
})
.设置文本('Hello DOM操作!')
.事件监听('click', () => {
console.log('元素被点击了');
元素.切换类('active');
});
// 创建元素
const 新按钮 = DOM操作.创建元素('button', {
class: 'btn btn-primary',
id: 'myButton',
事件: {
click: () => console.log('按钮被点击')
}
}, '点击我');
// 元素关系操作
const 容器 = new DOM操作('.container');
容器
.添加子元素(新按钮)
.查找('#myButton')
.设置属性('disabled', 'false');
// 静态方法使用
const 所有段落 = DOM操作.查找所有('p');
所有段落.forEach(段落 => {
段落
.添加类('text-content')
.设置样式('lineHeight', '1.5');
});
// 数据属性操作
const 数据元素 = new DOM操作('#dataElement');
数据元素
.设置数据('userId', '123')
.设置数据('userName', '张三');
const 用户ID = 数据元素.获取数据('userId');
const 所有数据 = 数据元素.获取所有数据();
// 位置和滚动操作
const 目标元素 = new DOM操作('#target');
if (目标元素.是否在可视区域()) {
console.log('元素在可视区域内');
} else {
目标元素.滚动到({ behavior: 'smooth' });
}
// 焦点操作
const 输入框 = new DOM操作('#inputField');
输入框.聚焦();
if (输入框.有焦点()) {
console.log('输入框获得焦点');
}
```
#### 存储操作中文封装
**模块信息**
- 模块文件名: zh-storage.js
- 路径: zh/前端/zh-storage.js
- 功能: 提供本地存储操作的中文API封装,支持localStorage和sessionStorage,包含自动JSON序列化/反序列化、过期时间管理和链式调用
**核心特性**
- 完整支持链式调用,提高代码可读性
- 提供JSDoc参数提示,方便开发使用
- 自动处理JSON序列化和反序列化
- 支持数据过期时间管理
- 提供批量操作和存储使用量计算
- 包含存储可用性检查
**命令总数:19个**
**基础操作函数** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | 存储对象 = localStorage | Storage | 创建存储操作实例 | 存储实例 |
| 取值 | 无 | 无 | 获取原始存储对象 | Storage |
| 存储 | 键, 值, 过期时间毫秒 | string, *, number | 存储数据到存储对象 | 存储实例(链式调用) |
| 读取 | 键 | string | 从存储对象读取数据 | * |
| 删除 | 键 | string | 删除存储对象中的数据 | 存储实例(链式调用) |
**存储管理函数** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 清空 | 无 | 无 | 清空存储对象中的所有数据 | 存储实例(链式调用) |
| 包含 | 键 | string | 检查存储对象中是否存在指定键 | boolean |
| 取键 | 无 | 无 | 获取存储对象中的所有键名 | Array |
| 取值列表 | 无 | 无 | 获取存储对象中的所有值 | Array |
| 取条目 | 无 | 无 | 获取存储对象中的所有键值对 | Array> |
**批量操作函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 批量存储 | 数据对象, 过期时间毫秒 | Object, number | 批量存储多个数据项 | 存储实例(链式调用) |
| 批量读取 | ...键列表 | ...string | 批量读取多个数据项 | Object |
| 批量删除 | ...键列表 | ...string | 批量删除多个数据项 | 存储实例(链式调用) |
**高级功能函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 大小 | 无 | 无 | 获取存储对象中的项目数量 | number |
| 存储使用量 | 无 | 无 | 获取存储对象的近似使用量(字节数) | number |
| 清空过期数据 | 无 | 无 | 清空所有过期的数据项 | 存储实例(链式调用) |
**静态方法** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 本地 | 无 | 无 | 静态方法:创建本地存储实例 | 存储实例 |
| 会话 | 无 | 无 | 静态方法:创建会话存储实例 | 存储实例 |
| 是否可用 | 存储对象 = localStorage | Storage | 静态方法:检查存储对象是否可用 | boolean |
**使用示例**
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { 存储 } from './zh/前端/zh-storage.js';
// 方法2: 使用默认导入
import 存储 from './zh/前端/zh-storage.js';
```
**基本使用示例:**
```javascript
// 创建存储实例(默认使用localStorage)
const 本地存储 = new 存储();
// 链式调用存储数据
本地存储
.存储('用户信息', { id: 1, name: '张三' })
.存储('设置', { theme: 'dark' }, 86400000); // 24小时后过期
// 读取数据
const 用户信息 = 本地存储.读取('用户信息');
console.log(用户信息.name); // 张三
// 检查存储是否包含键
if (本地存储.包含('设置')) {
console.log('设置已保存');
}
// 获取存储统计信息
console.log('存储项目数:', 本地存储.大小());
console.log('存储使用量:', 本地存储.存储使用量(), '字节');
// 使用静态方法
const 会话存储 = 存储.会话();
const 存储可用 = 存储.是否可用();
// 批量操作
本地存储.批量存储({
'缓存1': '数据1',
'缓存2': '数据2'
});
const 批量结果 = 本地存储.批量读取('缓存1', '缓存2');
本地存储.批量删除('缓存1', '缓存2');
```
#### URL操作中文封装
**模块信息**
- 模块文件名: zh-url.js
- 路径: zh/前端/zh-url.js
- 功能: 提供URL操作的中文API封装,支持URL解析、参数管理、组件操作、编码解码等功能,支持链式调用
**核心特性**
- 完整支持链式调用,提高代码可读性
- 提供JSDoc参数提示,方便开发使用
- 支持URL各组件的获取和设置操作
- 提供查询参数的完整管理功能
- 包含URL编码和解码工具
- 支持URL路径合并和比较功能
**命令总数:31个**
**基础URL操作函数** (4个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | url = '' | string | 创建URL操作实例 | URL操作实例 |
| 取值 | 无 | 无 | 获取原始URL对象 | URL |
| 转字符串 | 无 | 无 | 获取完整URL字符串 | string |
| 获取完整路径 | 无 | 无 | 获取完整的URL路径(href) | string |
**URL组件操作函数** (10个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 获取协议 | 无 | 无 | 获取URL协议 | string |
| 设置协议 | 协议 | string | 设置URL协议 | URL操作实例(链式调用) |
| 获取主机名 | 无 | 无 | 获取主机名 | string |
| 设置主机名 | 主机名 | string | 设置主机名 | URL操作实例(链式调用) |
| 获取端口 | 无 | 无 | 获取端口号 | string |
| 设置端口 | 端口 | string\|number | 设置端口号 | URL操作实例(链式调用) |
| 获取路径名 | 无 | 无 | 获取路径名 | string |
| 设置路径名 | 路径名 | string | 设置路径名 | URL操作实例(链式调用) |
| 获取锚点 | 无 | 无 | 获取URL锚点 | string |
| 设置锚点 | 锚点 | string | 设置URL锚点 | URL操作实例(链式调用) |
**查询参数操作函数** (11个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 获取查询字符串 | 无 | 无 | 获取查询字符串 | string |
| 设置查询字符串 | 查询字符串 | string | 设置查询字符串 | URL操作实例(链式调用) |
| 解析参数 | 无 | 无 | 解析查询参数为对象 | Object |
| 生成参数 | 参数对象 | Object | 根据对象生成查询参数 | URL操作实例(链式调用) |
| 添加参数 | 键, 值 | string, string\|number | 添加单个查询参数 | URL操作实例(链式调用) |
| 添加多个参数 | 参数对象 | Object | 批量添加查询参数 | URL操作实例(链式调用) |
| 获取参数 | 键 | string | 获取指定参数的值 | string\|null |
| 获取参数所有值 | 键 | string | 获取指定参数的所有值 | string[] |
| 删除参数 | 键 | string | 删除指定参数 | URL操作实例(链式调用) |
| 删除多个参数 | ...键列表 | ...string | 批量删除参数 | URL操作实例(链式调用) |
| 包含参数 | 键 | string | 检查是否包含指定参数 | boolean |
**其他操作函数** (2个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 是否相等 | 其他URL | string\|URL | 比较URL是否相等 | boolean |
| 克隆 | 无 | 无 | 创建URL操作实例的副本 | URL操作实例 |
**静态方法** (4个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 解析查询字符串 | 查询字符串 | string | 静态方法:解析查询字符串为对象 | Object |
| 对象转查询字符串 | 参数对象 | Object | 静态方法:将对象转换为查询字符串 | string |
| 编码/解码 | url | string | 静态方法:编码/解码URL | string |
| 编码组件/解码组件 | 组件 | string | 静态方法:编码/解码URL组件 | string |
| 合并路径 | 基础路径, 相对路径 | string, string | 静态方法:合并URL路径 | string |
**使用示例**
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { URL操作 } from './zh/前端/zh-url.js';
// 方法2: 使用默认导入
import URL操作 from './zh/前端/zh-url.js';
```
**基本使用示例:**
```javascript
// 创建URL操作实例
const url = new URL操作('https://example.com:8080/path/to/resource?name=张三&age=25#section1');
// 获取URL组件
console.log(url.获取协议()); // https:
console.log(url.获取主机名()); // example.com
console.log(url.获取端口()); // 8080
console.log(url.获取路径名()); // /path/to/resource
console.log(url.获取查询字符串()); // ?name=张三&age=25
console.log(url.获取锚点()); // #section1
// 修改URL组件(链式调用)
url
.设置协议('https:')
.设置主机名('api.example.com')
.设置端口('443')
.设置路径名('/api/v1/data')
.设置锚点('result');
// 查询参数操作
url
.添加参数('page', 1)
.添加参数('limit', 10)
.添加多个参数({ sort: 'desc', filter: 'active' });
// 获取参数值
console.log(url.获取参数('name')); // 张三
console.log(url.获取参数所有值('tag')); // []
console.log(url.解析参数()); // { name: '张三', age: '25', page: '1', limit: '10', sort: 'desc', filter: 'active' }
// 删除参数
url.delete参数('age');
url.delete多个参数('sort', 'filter');
// 检查参数是否存在
console.log(url.包含参数('name')); // true
// 完整URL字符串
console.log(url.转字符串()); // https://api.example.com:443/api/v1/data?name=张三&page=1&limit=10#result
// 克隆URL
const urlCopy = url.克隆();
// 比较URL
console.log(url.是否相等(urlCopy)); // true
// 使用静态方法
const params = URL操作.解析查询字符串('?id=123&status=active');
const queryString = URL操作.对象转查询字符串({ key: 'value', num: 123 });
const encoded = URL操作.编码('https://example.com/中文路径');
const decoded = URL操作.解码(encoded);
const encodedComponent = URL操作.编码组件('测试值=123');
const decodedComponent = URL操作.解码组件(encodedComponent);
const mergedPath = URL操作.合并路径('/api', 'users/profile'); // /api/users/profile
```
#### WebSocket操作中文封装
**模块信息**
- 模块文件名: zh-websocket.js
- 路径: zh/前端/zh-websocket.js
- 功能: 提供WebSocket连接、消息发送、事件监听、重连机制、心跳功能的中文API封装,支持链式调用
**核心特性**
- 完整支持链式调用,提高代码可读性
- 提供JSDoc参数提示,方便开发使用
- 内置自动重连机制,可配置重连间隔和最大次数
- 支持心跳机制,保持连接活跃
- 完整的事件处理系统,支持自定义事件监听
- 支持JSON消息自动序列化和反序列化
**命令总数:23个**
**基础操作函数** (8个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 构造函数 | url, 选项 = {} | string, Object | 创建WebSocket客户端实例 | WebSocket客户端实例 |
| 取值 | 无 | 无 | 获取原始WebSocket连接实例 | WebSocket|null |
| 获取状态 | 无 | 无 | 获取当前连接状态码 | number |
| 是否连接 | 无 | 无 | 检查是否处于连接状态 | boolean |
| 连接 | 无 | 无 | 连接WebSocket服务器 | WebSocket客户端(链式调用) |
| 关闭 | [代码=1000], [原因=''] | number, string | 关闭WebSocket连接 | WebSocket客户端(链式调用) |
| 获取缓冲大小 | 无 | 无 | 获取发送缓冲区大小 | number |
| 重连 | 无 | 无 | 手动触发重连 | WebSocket客户端(链式调用) |
**消息发送函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 发送 | 消息 | string\|Object | 发送消息(自动JSON序列化) | WebSocket客户端(链式调用) |
| 发送JSON | 数据 | Object | 发送JSON格式数据 | WebSocket客户端(链式调用) |
| 发送二进制 | 数据 | ArrayBuffer\|ArrayBufferView\|Blob\|string | 发送二进制数据 | WebSocket客户端(链式调用) |
**事件处理函数** (2个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 监听 | 事件名, 回调 | string, Function | 添加事件监听 | WebSocket客户端(链式调用) |
| 取消监听 | 事件名, [回调] | string, Function | 移除事件监听 | WebSocket客户端(链式调用) |
**配置函数** (3个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 设置重连配置 | 配置 | Object | 设置重连相关配置 | WebSocket客户端(链式调用) |
| 设置心跳配置 | 配置 | Object | 设置心跳相关配置 | WebSocket客户端(链式调用) |
| 升级协议 | 协议 | string\|string[] | 升级连接协议(WebSocket不支持运行时升级) | WebSocket客户端(链式调用) |
**静态方法** (2个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 是否支持 | 无 | 无 | 检查浏览器是否支持WebSocket | boolean |
| 创建安全URL | 基础URL, [参数={}] | string, Object | 创建安全的WebSocket URL(自动转换协议) | string |
**使用示例**
**ES 模块导入:**
```javascript
// 方法1: 导入整个模块
import { WebSocket客户端 } from './zh/前端/zh-websocket.js';
// 方法2: 使用默认导入
import WebSocket客户端 from './zh/前端/zh-websocket.js';
```
**基本使用示例:**
```javascript
// 创建WebSocket客户端实例
const ws = new WebSocket客户端('ws://localhost:8080/ws', {
协议: ['protocol1'],
重连间隔: 2000,
最大重连次数: 3,
心跳配置: {
启用: true,
间隔: 30000,
消息: 'ping'
}
});
// 添加事件监听
ws
.监听('连接', (数据) => {
console.log('WebSocket已连接');
})
.监听('消息', (数据) => {
console.log('收到消息:', 数据.数据);
console.log('原始数据:', 数据.原始数据);
})
.监听('错误', (数据) => {
console.error('WebSocket错误:', 数据.错误);
})
.监听('关闭', (数据) => {
console.log('WebSocket已关闭:', 数据.事件.code, 数据.事件.reason);
})
.监听('重连尝试', (数据) => {
console.log(`重连尝试中... 次数: ${数据.次数}`);
})
.监听('发送', (数据) => {
console.log('消息已发送:', 数据.消息);
});
// 连接WebSocket服务器
ws.连接();
// 发送消息
ws.发送('你好,WebSocket!');
ws.发送JSON({ 类型: '消息', 内容: '这是JSON格式消息' });
// 检查连接状态
if (ws.是否连接()) {
console.log('WebSocket已连接,状态码:', ws.获取状态());
console.log('发送缓冲区大小:', ws.获取缓冲大小());
}
// 手动重连
ws.重连();
// 动态配置
ws
.设置重连配置({ 重连间隔: 5000, 最大重连次数: 10 })
.设置心跳配置({ 启用: true, 间隔: 60000, 消息: 'heartbeat' });
// 使用静态方法
if (WebSocket客户端.是否支持()) {
const secureUrl = WebSocket客户端.创建安全URL('http://example.com/ws', { token: 'abc123' });
console.log('安全URL:', secureUrl); // 会自动转换为wss://example.com/ws?token=abc123
}
// 关闭连接(在适当的时候)
// ws.关闭(1000, '正常关闭');
```
### 后端函数模块
| 导出规范 | 源码示例 | 使用场景 |
| --- | --- | --- |
| **CommonJS**(默认) | `module.exports = { 数组 };`
`module.exports.数组 = 数组;` | Node.js 原生 require |
#### 加密操作中文封装
**模块信息**
- 模块文件名: 加密.js
- 路径: zh/后端/核心/加密.js
- 功能: 基于Node.js内置crypto库的中文API封装,提供加密、解密、哈希、HMAC、密钥管理、数字签名等功能
**核心特性**
- 完整支持中文函数名和参数名,提高代码可读性
- 提供JSDoc参数提示,方便开发使用
- 支持同步和异步操作,适应不同场景需求
- 提供简化的高级接口和完整的低级接口
- 内置安全的随机数生成、密码加密和验证功能
- 支持常见的加密算法、哈希算法和密钥交换
**命令总数:34个**
**随机数生成函数** (4个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 生成随机字节 | 大小 = 32 | number | 生成指定大小的随机字节 | Buffer |
| 生成随机字符串 | 长度 = 32, 字符集 = '...' | number, string | 生成指定长度的随机字符串 | string |
| 生成UUID | 无 | 无 | 生成UUID v4 | string |
| 生成临时令牌 | 长度 = 32 | number | 生成临时令牌 | string |
**哈希函数** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 创建哈希 | 算法 = 'sha256' | string | 创建哈希对象 | Hash |
| 计算哈希 | 数据, 算法 = 'sha256', 输出编码 = 'hex' | string\|Buffer, string, string | 计算数据的哈希值 | string |
| 计算MD5 | 数据, 输出编码 = 'hex' | string\|Buffer, string | 计算MD5哈希 | string |
| 计算SHA1 | 数据, 输出编码 = 'hex' | string\|Buffer, string | 计算SHA1哈希 | string |
| 计算SHA256 | 数据, 输出编码 = 'hex' | string\|Buffer, string | 计算SHA256哈希 | string |
| 计算文件哈希 | 文件路径, 算法 = 'sha256' | string, string | 计算文件的哈希值 | Promise |
**HMAC函数** (2个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 创建HMAC | 算法 = 'sha256', 密钥 | string, string\|Buffer | 创建HMAC对象 | Hmac |
| 计算HMAC | 数据, 密钥, 算法 = 'sha256', 输出编码 = 'hex' | string\|Buffer, string\|Buffer, string, string | 计算HMAC值 | string |
**AES加密解密函数** (6个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 创建AES加密器 | 密钥, 算法 = 'aes-256-cbc', 初始化向量 | string, string, Buffer\|string | 创建AES加密器 | Cipher |
| 创建AES解密器 | 密钥, 算法 = 'aes-256-cbc', 初始化向量 | string, string, Buffer\|string | 创建AES解密器 | Decipher |
| AES加密 | 数据, 密钥, 选项 = {} | string\|Buffer, string, Object | AES加密数据 | Object |
| AES解密 | 加密数据, 密钥, 初始化向量, 选项 = {} | string\|Buffer, string, string\|Buffer, Object | AES解密数据 | string |
| 加密字符串 | 明文, 密钥 | string, string | 简化的字符串加密 | string |
| 解密字符串 | 加密字符串, 密钥 | string, string | 简化的字符串解密 | string |
**密钥管理函数** (5个)
| 函数名 | 参数 | 参数类型 | 功能描述 | 返回值 |
|-------|-----|---------|--------|-------|
| 生成密钥对 | 算法 = 'rsa', 选项 = {} | string, Object | 生成密钥对 | Promise