Skip to content

常用的类型判断

  • 参考vue3的源码工具函数

isDef

判断不是undefined

Parameters:

  • val: -内容

Examples:

ts
let result = isDef('test')

isUnDef

判断是undefined

Parameters:

  • val: -内容

Examples:

ts
let result = isUnDef('test')

isObject

判断是Object,包含数组.Map等

Parameters:

  • val: -内容

Examples:

ts
let result = isObject({ name: 1 })

isPlainObject

判断是原始Object,不包含数组

Parameters:

  • val: -内容

Examples:

ts
let result = isPlainObject({ name: 1 })

isEmptyObject

检测是否是空对象(含数组)

Parameters:

  • obj: - 检测当前类型
ts
let result = isEmptyObject({ name: 1 })

isEmpty

判断是空,包括空数组,空对象,空Map

Parameters:

  • obj: - 检测当前类型
ts
let result = isEmpty({ name: 1 })

isEmptyValue

检测是否空值(空string|undefined|null)

Parameters:

  • name: - 检测当前类型
ts
let result = isEmptyValue(name)

isDate

判断是日期对象

Parameters:

  • val: -内容

Examples:

ts
let result = isDate(new Date())

isNullOrUnDef

判断是null或undefined

Parameters:

  • val: -内容

Examples:

ts
let result = isNullOrUnDef('')

isNumber

是否是number

Parameters:

  • val: -内容

Examples:

ts
let result = isNumber(1)

isInteger

判断是否为整数(支持负数)

支持 number 类型和 string 类型的整数判断,严格验证格式。

Parameters:

  • val: 要检测的值(字符串或数字)

Returns:

  • boolean: 如果是整数返回 true,否则返回 false

Examples:

ts
isInteger(123) // true
isInteger('456') // true
isInteger('-789') // true
isInteger(0) // true
isInteger('0') // true

// 不通过的情况
isInteger(3.14) // false - 浮点数
isInteger('3.14') // false - 浮点数字符串
isInteger('1.') // false - 不规范格式
isInteger('.5') // false - 不规范格式
isInteger('007') // false - 前导零
isInteger('+123') // false - 带加号
isInteger('abc') // false - 非数字
isInteger(NaN) // false
isInteger(Infinity) // false

isNumeric

判断是否为数值(整数或小数,支持负数)

支持 number 类型和 string 类型的数值判断,可以是整数或小数,严格验证格式。

Parameters:

  • val: 要检测的值(字符串或数字)

Returns:

  • boolean: 如果是有效数值返回 true,否则返回 false

Examples:

ts
// 整数
isNumeric(123) // true
isNumeric('456') // true
isNumeric('-789') // true
isNumeric(0) // true
isNumeric('0') // true

// 小数
isNumeric(3.14) // true
isNumeric('3.14') // true
isNumeric('-0.5') // true
isNumeric(1.0) // true

// 不通过的情况
isNumeric('1.') // false - 不规范格式
isNumeric('.5') // false - 缺少整数部分
isNumeric('1.1.1') // false - 多个小数点
isNumeric('007') // false - 前导零
isNumeric('+123') // false - 带加号
isNumeric('abc') // false - 非数字
isNumeric('') // false - 空字符串
isNumeric(NaN) // false
isNumeric(Infinity) // false

isMultipleOf

判断是否为某个数的倍数

Parameters:

  • val: 要检测的值(支持数字或数字字符串)
  • factor: 倍数因子(数字)

Returns:

  • boolean: 如果 val 是 factor 的倍数返回 true,否则返回 false

Examples:

ts
// 整数倍数
isMultipleOf(10, 5) // true
isMultipleOf(15, 3) // true
isMultipleOf(10, 3) // false

// 字符串类型
isMultipleOf('20', 4) // true
isMultipleOf('100.5', 0.5) // true

// 零值
isMultipleOf(0, 5) // true (0是任何非零数的倍数)
isMultipleOf(10, 0) // false (因子不能为0)

// 浮点数
isMultipleOf(1.5, 0.5) // true
isMultipleOf(3.6, 1.2) // true
isMultipleOf(1.5, 0.6) // false

// 负数
isMultipleOf(-10, 5) // true
isMultipleOf(10, -5) // true
isMultipleOf(-15, -3) // true

// 精度问题自动处理
isMultipleOf(0.3, 0.1) // true
isMultipleOf(0.6, 0.2) // true

// 无效输入
isMultipleOf('abc', 5) // false
isMultipleOf(NaN, 5) // false
isMultipleOf(Infinity, 5) // false

isPromise

是否是Promise

Parameters:

  • val: -内容

Examples:

ts
let result = isPromise('test')

isFunction

是否是函数

Parameters:

  • val: -内容

Examples:

ts
let result = isFunction('test')

isRegExp

是否是正则

Parameters:

  • val: -内容

Examples:

ts
let result = isRegExp(window)

isArray

是否是数组

Parameters:

  • val: -内容

Examples:

ts
let result = isArray(window)

isWindow

是否是Window

Parameters:

  • val: -内容

Examples:

ts
let result = isWindow(window)

isMap

是否是Map

Parameters:

  • val: -内容

Examples:

ts
let result = isMap(window)

isUrl

是否是isUrl

Parameters:

  • val: -内容

Examples:

ts
let result = isUrl('http://www.baidu.com')

isIframe

是否是iframe

Parameters:

  • val: -内容

Examples:

ts
let result = isIframe()