ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
``` const getType = (obj) => Object.prototype.toString.call(obj).slice(8, -1); ``` 使用示例 ``` const getType = (obj) => Object.prototype.toString.call(obj).slice(8, -1); let a = {}; let b = []; let c = "string"; let d = 12; let e = function test(){ } let f = null; let g = undefined; let h = true; console.log(getType(a));//Object console.log(getType(b));//Array console.log(getType(c));//String console.log(getType(d));//Number console.log(getType(e));//Function console.log(getType(f));//Null console.log(getType(g));//Undefined console.log(getType(h));//Boolean ``` 这个函数也是大家从juqery代码里学来的,一直沿用到现在,也是极为推崇的判断类型的方法,因为它非常准确。 ``` const getType = (obj) => Object.prototype.toString.call(obj).slice(8, -1); exportfunction isArray(obj: any): obj is any[] { return getType(obj) === 'Array'; } exportfunction isObject(obj: any): obj is { [key: string]: any } { return getType(obj) === 'Object'; } exportfunction isString(obj: any): obj is string { return getType(obj) === 'String'; } exportfunction isNumber(obj: any): obj is number { return getType(obj) === 'Number' && obj === obj; } exportfunction isRegExp(obj: any) { return getType(obj) === 'RegExp'; } exportfunction isFile(obj: any): obj is File { return getType(obj) === 'File'; } exportfunction isBlob(obj: any): obj is Blob { return getType(obj) === 'Blob'; } exportfunction isUndefined(obj: any): obj is undefined { return obj === undefined; } exportfunction isFunction(obj: any): obj is (...args: any[]) => any { return typeof obj === 'function'; } exportfunction isEmptyObject(obj: any): boolean { return isObject(obj) && Object.keys(obj).length === 0; } ```