| | |
| | | - [引用方法](#引用方法) |
| | | - [使用方法](#使用方法) |
| | | - [方法列表](#方法列表) |
| | | - [`toast()`](#toast) |
| | | - [`getUrlParam(name, search)`](#geturlparamname-search) |
| | | - [`createGUID()`](#createguid) |
| | | - [`getRandomString(long)`](#getrandomstringlong) |
| | | - [`isNumber(data)`](#isnumberdata) |
| | | - [`isString(data)`](#isstringdata) |
| | | - [`isBoolean(data)`](#isbooleandata) |
| | | - [`isObject(data)`](#isobjectdata) |
| | | - [`isArray(data)`](#isarraydata) |
| | | - [`isFunction(data)`](#isfunctiondata) |
| | | - [`isUndefined(data)`](#isundefineddata) |
| | | - [`isNull(data)`](#isnulldata) |
| | | - [部分功能详解](#部分功能详解) |
| | | - [momentFormat 时间格式化](#momentformat-时间格式化) |
| | | - [debounce、throttle 防抖和节流](#debouncethrottle-防抖和节流) |
| | |
| | | |
| | | ## 方法列表 |
| | | |
| | | ```JS |
| | | export class Tools { |
| | | /** |
| | | * 显示消息 |
| | | * @param {string} msg - 消息内容 |
| | | * @param {number} [duration=2000] - 显示时长,默认2000毫秒 |
| | | * @param {boolean} [mask=false] - 是否显示透明蒙层,防止触摸穿透,默认false |
| | | */ |
| | | static toast(msg, duration = 2000, mask = false) {} |
| | | ### `toast()` |
| | | **功能** |
| | | 显示消息提示。 |
| | | |
| | | /** |
| | | * URL参数解析 |
| | | * @param {string} name - 参数名 |
| | | * @param {string} [search] - URL查询字符串,默认当前页面URL |
| | | * @return {string|null} 返回参数值或null |
| | | */ |
| | | static getUrlParam(name, search) {} |
| | | **参数** |
| | | - `msg` (String):需要显示的消息内容。 |
| | | - `duration` (Number,可选,默认值 `2000`):消息显示的时长,单位为毫秒。 |
| | | - `mask` (Boolean,可选,默认值 `false`):是否显示遮罩层。 |
| | | |
| | | /** |
| | | * 生成 GUID |
| | | * @return {string} 返回生成的GUID |
| | | */ |
| | | static createGUID() {} |
| | | **返回值** |
| | | 无 |
| | | |
| | | /** |
| | | * 获取随机字符串 |
| | | * @param {number} [long] - 字符串长度,默认32 |
| | | * @return {string} 返回生成的随机字符串 |
| | | */ |
| | | static getRandomString(long = 32) {} |
| | | |
| | | /** |
| | | * 判断是否是数字 |
| | | * @param {*} data - 要判断的数据 |
| | | * @return {boolean} 返回是否为数字 |
| | | */ |
| | | static isNumber(data) {} |
| | | |
| | | /** |
| | | * 判断是否是字符串 |
| | | * @param {*} data - 要判断的数据 |
| | | * @return {boolean} 返回是否为字符串 |
| | | */ |
| | | static isString(data) {} |
| | | |
| | | /** |
| | | * 判断是否为布尔值 |
| | | * @param {*} data - 要判断的数据 |
| | | * @return {boolean} 返回是否为布尔值 |
| | | */ |
| | | static isBoolean(data) {} |
| | | |
| | | /** |
| | | * 判断是否是普通对象 |
| | | * @param {*} data - 要判断的数据 |
| | | * @return {boolean} 返回是否为普通对象 |
| | | */ |
| | | static isObject(data) {} |
| | | |
| | | /** |
| | | * 判断是否是数组 |
| | | * @param {*} data - 要判断的数据 |
| | | * @return {boolean} 返回是否为数组 |
| | | */ |
| | | static isArray(data) {} |
| | | |
| | | /** |
| | | * 判断是否是函数 |
| | | * @param {*} data - 要判断的数据 |
| | | * @return {boolean} 返回是否为函数 |
| | | */ |
| | | static isFunction(data) {} |
| | | |
| | | /** |
| | | * 判断是否为未定义 |
| | | * @param {*} data - 要判断的数据 |
| | | * @return {boolean} 返回是否为未定义 |
| | | */ |
| | | static isUndefined(data) {} |
| | | |
| | | /** |
| | | * 判断是否为 null |
| | | * @param {*} data - 要判断的数据 |
| | | * @return {boolean} 返回是否为 null |
| | | */ |
| | | static isNull(data) {} |
| | | |
| | | /** |
| | | * 是否为空对象 |
| | | * @param {*} obj - 要判断的对象 |
| | | * @return {boolean} 返回是否为空对象 |
| | | */ |
| | | static isEmptyObject(obj) {} |
| | | |
| | | /** |
| | | * 判断对象是否在属性上相等 |
| | | * @param {Object} a - 对象a |
| | | * @param {Object} b - 对象b |
| | | * @return {boolean} 返回对象是否相等 |
| | | */ |
| | | static isObjValEqual(a, b) {} |
| | | |
| | | /** |
| | | * 统计字符串占位宽度(汉字占两位) |
| | | * @param {string} string - 要统计的字符串 |
| | | * @return {number} 返回字符串占位宽度 |
| | | */ |
| | | static countStringLength(string) {} |
| | | |
| | | /** |
| | | * 获取字符串基于字节长度的剪切点 |
| | | * @param {string} string - 要剪切的字符串 |
| | | * @param {number} byteLength - 字节长度 |
| | | * @return {number} 返回剪切点位置 |
| | | */ |
| | | static getStringCutIndex(string, byteLength) {} |
| | | |
| | | /** |
| | | * 限制数值范围,超出边界返回边界值 |
| | | * @param {number|string} num - 数值 |
| | | * @param {[number, number]} range - 数值范围 |
| | | * @return {number} 返回限制后的数值 |
| | | */ |
| | | static limitNumberRange(num, range) {} |
| | | |
| | | /** |
| | | * 深拷贝 |
| | | * @param {Object} source - 源对象 |
| | | * @return {Object|Array} 返回深拷贝后的对象或数组 |
| | | */ |
| | | static deepCopy(source) {} |
| | | |
| | | /** |
| | | * 深合并 |
| | | * @param {Object|Array} target - 目标对象或数组 |
| | | * @param {Object|Array} source - 源对象或数组 |
| | | * @return {Object|Array} 返回合并后的对象或数组 |
| | | */ |
| | | static deepCombine(target, source) {} |
| | | |
| | | /** |
| | | * 数组元素交换位置 |
| | | * @param {Array} arr - 数组 |
| | | * @param {number} fromIndex - 要交换项目的位置 |
| | | * @param {number} toIndex - 被交换项目的位置 |
| | | * @return {Array} 返回交换后的数组 |
| | | */ |
| | | static swapArray(arr, fromIndex, toIndex) {} |
| | | |
| | | /** |
| | | * 使用 moment.js 格式化时间戳 |
| | | * @param {number|string} timestamp - 时间戳 |
| | | * @param {string} [type='date'] - 格式化类型 |
| | | * @return {string} 返回格式化后的时间字符串 |
| | | */ |
| | | static momentFormat(timestamp, type = 'date') {} |
| | | |
| | | /** |
| | | * 数值转换为时长描述 |
| | | * @param {number} timestamp - 时间戳 |
| | | * @return {string} 返回时长描述 |
| | | */ |
| | | static durationFormat(timestamp) {} |
| | | |
| | | /** |
| | | * 数值转换为金钱格式 |
| | | * @param {number|string} number - 数值 |
| | | * @param {string} [forRead=''] - 便于阅读财务金额模式 |
| | | * @return {string} 返回格式化后的金钱字符串 |
| | | */ |
| | | static moneyFormat(number, forRead = '') {} |
| | | |
| | | /** |
| | | * 数值转换为千分位格式 |
| | | * @param {number|string} number - 数值 |
| | | * @param {string} decimalFormat - 处理小数的方式,有 notRetain、keepTwo、keepThree 三个值 |
| | | * @return {string} 返回格式化后的字符串 |
| | | */ |
| | | static thousandFormat(number, decimalFormat = 'keepTwo') {} |
| | | |
| | | /** |
| | | * 加法函数,用来得到精确的加法结果 |
| | | * @param {number|string} num1 - 数值1 |
| | | * @param {number|string} num2 - 数值2 |
| | | * @return {number} 返回加法结果 |
| | | */ |
| | | static accAdd(num1, num2) {} |
| | | |
| | | /** |
| | | * 减法函数,用来得到精确的减法结果 |
| | | * @param {number|string} num1 - 数值1 |
| | | * @param {number|string} num2 - 数值2 |
| | | * @return {number} 返回减法结果 |
| | | */ |
| | | static accSub(num1, num2) {} |
| | | |
| | | /** |
| | | * 乘法函数,用来得到精确的乘法结果 |
| | | * @param {number|string} num1 - 数值1 |
| | | * @param {number|string} num2 - 数值2 |
| | | * @return {number} 返回乘法结果 |
| | | */ |
| | | static accMul(num1, num2) {} |
| | | |
| | | /** |
| | | * 除法函数,用来得到精确的除法结果 |
| | | * @param {number|string} num1 - 数值1 |
| | | * @param {number|string} num2 - 数值2 |
| | | * @return {number} 返回除法结果 |
| | | */ |
| | | static accDiv(num1, num2) {} |
| | | |
| | | /** |
| | | * 求小数点后的数据长度 |
| | | * @param {number|string} num - 数值 |
| | | * @return {number} 返回小数点后的数据长度 |
| | | */ |
| | | static getDecimalLength(num) {} |
| | | |
| | | /** |
| | | * 判断是否为手机号码 |
| | | * @param {number|string} phone - 手机号码 |
| | | * @return {boolean} 返回是否为手机号码 |
| | | */ |
| | | static isPhone(phone) {} |
| | | |
| | | /** |
| | | * 转换周数到日期 |
| | | * @param {number} year - 年份 |
| | | * @param {number} week - 周数 |
| | | * @param {number} weekDay - 需要输出星期几对应的日期 (1~7) |
| | | * @return {string} 返回对应的日期 |
| | | */ |
| | | static transWeekIndexToDate(year, week, weekDay) {} |
| | | |
| | | /** |
| | | * 防抖函数(一段时间周期内,仅执行最后一次回调) |
| | | * @param {Function} fnc - 回调函数 |
| | | * @param {number} wait - 等待时间,默认200毫秒 |
| | | * @return {Function} 返回防抖函数 |
| | | * @tutorial Tools.debounce(<fnc>, <wait>)(<DebounceKey>) |
| | | */ |
| | | static debounce(fnc, wait = 200) {} |
| | | |
| | | /** |
| | | * 节流函数(本段时间内,仅执行第一次回调) |
| | | * @param {Function} fnc - 回调函数 |
| | | * @param {number} wait - 等待时间,默认200毫秒 |
| | | * @return {Function} 返回节流函数 |
| | | * @tutorial Tools.throttle(<fnc>, <wait>)(<ThrottleKey>) |
| | | */ |
| | | static throttle(fnc, wait = 200) {} |
| | | |
| | | /** |
| | | * 精确保留小数点几位数,自动补零,修复 toFixed 四舍五入和后端不一致的问题 |
| | | * @param {number|string} num - 数值 |
| | | * @param {number} [digit=0] - 小数点后位数 |
| | | * @return {string|NaN} 返回保留小数点后的数值或NaN |
| | | */ |
| | | static accFixed(num, digit = 0) {} |
| | | } |
| | | **示例** |
| | | ```javascript |
| | | Tools.toast('操作成功'); |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ### `getUrlParam(name, search)` |
| | | **功能** |
| | | 解析 URL 参数。 |
| | | |
| | | **参数** |
| | | - `name` (String):需要解析的参数名。 |
| | | - `search` (String,可选):自定义的查询字符串,默认为当前页面的 `window.location.search`。 |
| | | |
| | | **返回值** |
| | | - `String`: 解析后的参数值。 |
| | | - `Null`: 如果参数不存在或在小程序环境中,返回 `null`。 |
| | | |
| | | **示例** |
| | | ```javascript |
| | | const userId = Tools.getUrlParam('userId'); |
| | | ``` |
| | | |
| | | **注意事项** |
| | | - 该方法仅适用于浏览器环境,在小程序环境中,该方法直接返回 `null` |
| | | |
| | | --- |
| | | |
| | | ### `createGUID()` |
| | | **功能** |
| | | 生成一个全局唯一标识符(GUID)。 |
| | | |
| | | **参数** |
| | | 无 |
| | | |
| | | **返回值** |
| | | - `String`:返回一个符合 GUID 格式的字符串。 |
| | | |
| | | **示例** |
| | | ```javascript |
| | | const guid = Tools.createGUID(); |
| | | console.log(guid); // 输出类似 "3b9f1a2c-4e5f-4d3a-8b2c-1a2b3c4d5e6f" |
| | | ``` |
| | | |
| | | **注意事项** |
| | | - 生成的 GUID 是基于随机数的,虽然概率极低,但不能保证绝对唯一,因此不适于永久存储的业务。 |
| | | |
| | | --- |
| | | |
| | | ### `getRandomString(long)` |
| | | **功能** |
| | | 生成一个指定长度的随机字符串。 |
| | | |
| | | **参数** |
| | | - `long` (Number,可选):生成的字符串长度,默认为 32。 |
| | | |
| | | **返回值**: |
| | | - (String):返回一个随机字符串。 |
| | | |
| | | **示例** |
| | | ```javascript |
| | | const randomString = Tools.getRandomString(16); |
| | | console.log(randomString); // 输出类似 "aB3dEfGhIjKlMnOp" |
| | | ``` |
| | | |
| | | **注意事项**: |
| | | - 生成的字符串仅包含指定的字符集,不包含容易混淆的字符(如 `1`, `l`, `0`, `O` 等)。 |
| | | |
| | | --- |
| | | |
| | | ### `isNumber(data)` |
| | | **功能**:判断传入的数据是否为数值类型。 |
| | | |
| | | **参数**: |
| | | - `data` (*):需要判断的数据。 |
| | | |
| | | **返回值**: |
| | | - (Boolean):如果数据是数值类型,返回 `true`,否则返回 `false`。 |
| | | |
| | | **示例**: |
| | | ```javascript |
| | | console.log(Tools.isNumber(123)); // true |
| | | console.log(Tools.isNumber('123')); // false |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ### `isString(data)` |
| | | **功能**:判断传入的数据是否为字符串类型。 |
| | | |
| | | **参数**: |
| | | - `data` (*):需要判断的数据。 |
| | | |
| | | **返回值**: |
| | | - (Boolean):如果数据是字符串类型,返回 `true`,否则返回 `false`。 |
| | | |
| | | **示例**: |
| | | ```javascript |
| | | console.log(Tools.isString('hello')); // true |
| | | console.log(Tools.isString(123)); // false |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ### `isBoolean(data)` |
| | | **功能**:判断传入的数据是否为布尔类型。 |
| | | |
| | | **参数**: |
| | | - `data` (*):需要判断的数据。 |
| | | |
| | | **返回值**: |
| | | - (Boolean):如果数据是布尔类型,返回 `true`,否则返回 `false`。 |
| | | |
| | | **示例**: |
| | | ```javascript |
| | | console.log(Tools.isBoolean(true)); // true |
| | | console.log(Tools.isBoolean('true')); // false |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ### `isObject(data)` |
| | | **功能**:判断传入的数据是否为普通对象类型。 |
| | | |
| | | **参数**: |
| | | - `data` (*):需要判断的数据。 |
| | | |
| | | **返回值**: |
| | | - (Boolean):如果数据是普通对象类型,返回 `true`,否则返回 `false`。 |
| | | |
| | | **示例**: |
| | | ```javascript |
| | | console.log(Tools.isObject({})); // true |
| | | console.log(Tools.isObject([])); // false |
| | | ``` |
| | | --- |
| | | |
| | | ### `isArray(data)` |
| | | **功能**:判断传入的数据是否为数组类型。 |
| | | |
| | | **参数**: |
| | | - `data` (*):需要判断的数据。 |
| | | |
| | | **返回值**: |
| | | - (Boolean):如果数据是数组类型,返回 `true`,否则返回 `false`。 |
| | | |
| | | **示例**: |
| | | ```javascript |
| | | console.log(Tools.isArray([])); // true |
| | | console.log(Tools.isArray({})); // false |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ### `isFunction(data)` |
| | | **功能**:判断传入的数据是否为函数类型。 |
| | | |
| | | **参数**: |
| | | - `data` (*):需要判断的数据。 |
| | | |
| | | **返回值**: |
| | | - (Boolean):如果数据是函数类型,返回 `true`,否则返回 `false`。 |
| | | |
| | | **示例**: |
| | | ```javascript |
| | | console.log(Tools.isFunction(() => {})); // true |
| | | console.log(Tools.isFunction({})); // false |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ### `isUndefined(data)` |
| | | **功能**:判断传入的数据是否为 `undefined`。 |
| | | |
| | | **参数**: |
| | | - `data` (*):需要判断的数据。 |
| | | |
| | | **返回值**: |
| | | - (Boolean):如果数据是 `undefined`,返回 `true`,否则返回 `false`。 |
| | | |
| | | **示例**: |
| | | ```javascript |
| | | console.log(Tools.isUndefined(undefined)); // true |
| | | console.log(Tools.isUndefined(null)); // false |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ### `isNull(data)` |
| | | **功能**:判断传入的数据是否为 `null`。 |
| | | |
| | | **参数**: |
| | | - `data` (*):需要判断的数据。 |
| | | |
| | | **返回值**: |
| | | - (Boolean):如果数据是 `null`,返回 `true`,否则返回 `false`。 |
| | | |
| | | **示例**: |
| | | ```javascript |
| | | console.log(Tools.isNull(null)); // true |
| | | console.log(Tools.isNull(undefined)); // false |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | |
| | | ## 部分功能详解 |
| | | |
| | | ### momentFormat 时间格式化 |