|
|
|
|
// 函数 isDef 用于判断传入的值是否为已定义(即不是 undefined 也不是 null)
|
|
|
|
|
// 返回一个布尔值,如果值既不是 undefined 也不是 null,则返回 true,否则返回 false
|
|
|
|
|
function isDef(value) {
|
|
|
|
|
return value!== undefined && value!== null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 函数 isObj 用于判断传入的参数是否为对象类型(包括普通对象、函数等符合 JavaScript 中对象定义的情况,但要排除 null)
|
|
|
|
|
// 首先获取参数的类型(通过 typeof 操作符),然后判断参数不为 null 且类型是 'object' 或者 'function' 时,返回 true,否则返回 false
|
|
|
|
|
function isObj(x) {
|
|
|
|
|
const type = typeof x;
|
|
|
|
|
return x!== null && (type === 'object' || type === 'function');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 函数 isNumber 用于简单判断传入的字符串是否表示一个纯数字(只包含数字字符)
|
|
|
|
|
// 通过正则表达式 /^\d+$/ 来测试传入的字符串,如果匹配成功,表示字符串只由数字组成,返回 true,否则返回 false
|
|
|
|
|
// 注意:该函数对于如 "12.3" 这样的浮点数字符串会判断为 false,有一定的局限性,仅适用于判断正整数形式的字符串
|
|
|
|
|
function isNumber(value) {
|
|
|
|
|
return /^\d+$/.test(value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 函数 range 用于将给定的数字 num 限定在指定的最小值 min 和最大值 max 范围内
|
|
|
|
|
// 先通过 Math.max 取 num 和 min 中的较大值,确保返回值不会小于 min,再通过 Math.min 取上述较大值与 max 中的较小值,确保返回值不会大于 max
|
|
|
|
|
// 最终返回限定在 [min, max] 范围内的值
|
|
|
|
|
function range(num, min, max) {
|
|
|
|
|
return Math.min(Math.max(num, min), max);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 将 isObj、isDef、isNumber、range 这四个函数作为模块的导出项,以便其他模块可以引入并使用这些函数
|
|
|
|
|
export { isObj, isDef, isNumber, range };
|