Skip to content

isType

isType方法用于判断一个值的具体类型。支持传入逗号分隔的多个类型名称,只要匹配其中之一即返回 true

语法

javascript
isType(type, target)

描述

isType 函数使用 Object.prototype.toString.call 进行类型判断,这是 JavaScript 中最可靠的类型判断方式之一,能够准确区分数组、对象、null 等各种类型。

函数会将 type 参数按逗号分隔成多个类型名称,依次与 target 的实际类型进行比较,只要有一个匹配就返回 true。这种设计使得函数可以一次性判断多种可能的类型。

类型名称应使用 Object.prototype.toString.call 返回值中的标准名称,例如 ArrayObjectStringNumberNullUndefinedFunctionDateRegExpError 等。

注意事项

  • 第一个参数 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 是原生的类型判断方式,性能优于大多数第三方类型判断库

相关函数