isType
isType方法用于判断一个值的具体类型。支持传入逗号分隔的多个类型名称,只要匹配其中之一即返回 true。
语法
javascript
isType(type, target)描述
isType 函数使用 Object.prototype.toString.call 进行类型判断,这是 JavaScript 中最可靠的类型判断方式之一,能够准确区分数组、对象、null 等各种类型。
函数会将 type 参数按逗号分隔成多个类型名称,依次与 target 的实际类型进行比较,只要有一个匹配就返回 true。这种设计使得函数可以一次性判断多种可能的类型。
类型名称应使用 Object.prototype.toString.call 返回值中的标准名称,例如 Array、Object、String、Number、Null、Undefined、Function、Date、RegExp、Error 等。
注意事项
- 第一个参数
type是字符串,多个类型用英文逗号分隔,如'Array,Object' - 类型名称区分大小写,应使用首字母大写的格式(如
Array而非array) - 该函数使用
Object.prototype.toString.call判断,比typeof更精确,能够区分数组和对象 - 如果
type是空字符串,分割后会得到包含一个空字符串的数组,通常不会匹配任何值 - 不要在类型名称前后添加多余的空格,否则可能匹配失败
示例
基本类型判断
多类型判断
浏览器兼容
isType 使用了 Object.prototype.toString.call 这一基础 JavaScript API,在所有现代浏览器中均可使用,包括 IE6+。
性能考虑
- 时间复杂度: O(n) - 其中 n 是传入的类型数量(逗号分隔后的数量)
- 空间复杂度: O(n) - 需要存储分割后的类型数组和结果数组
- 实际使用中类型数量通常很少(1-3 个),性能开销可忽略
Object.prototype.toString.call是原生的类型判断方式,性能优于大多数第三方类型判断库
相关函数
matchRules- 通用条件判断,内部使用 ramda 的 type 进行类型判断looseHas- 宽松包含判断isRangeIn- 区间判断