types.js
用于类型判断的工具函数
js
export function isString(obj) {
return Object.prototype.toString.call(obj) === '[object String]'
}
export function hasString(obj) {
return isString(obj) && obj.trim() !== ''
}
export function isNumber(obj) {
return Object.prototype.toString.call(obj) === '[object Number]' && !isNaN(obj)
}
export function isObject(obj) {
return Object.prototype.toString.call(obj) === '[object Object]'
}
export function isArray(obj) {
return Object.prototype.toString.call(obj) === '[object Array]'
}
export function isMap(obj) {
return Object.prototype.toString.call(obj) === '[object Map]'
}
export function isHtmlElement(node) {
return node && node.nodeType === Node.ELEMENT_NODE
}
export function isBoolean(obj) {
return typeof obj === 'boolean'
}
/**
* - Inspired:
* https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js
*/
let isFunction = (functionToCheck) => {
const getType = {}
return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'
}
if (
typeof /./ !== 'function' &&
typeof Int8Array !== 'object' &&
typeof document.childNodes !== 'function'
) {
isFunction = function (obj) {
return typeof obj === 'function' || false
}
}
export { isFunction }
export const isUndefined = (val) => val == null || val === void 0
export const isDefined = (val) => val !== undefined && val !== null
export default {
isArray,
isString,
isDefined,
isFunction,
isUndefined,
isHtmlElement,
isMap,
isObject,
hasString,
isBoolean
}