// 函数 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 };