```
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;
}
```
- Js方法速查表
- Js 代码片段
- Js中类型判断
- 判断类型函数
- 处理 null、NaN 和 undefined 的 JS 代码片段
- 检查是否为null
- 检查undefined
- 检查 NaN
- 如果为 null 或undefined则默认为某个值
- 如果为 NaN,则默认为一个值
- 检查值是否为 null、undefined或 NaN
- 可选链接(?.)
- 空合并运算符(??)
- 将 null 或 undefined 转换为布尔值
- 将 NaN 转换为布尔值
- 处理函数参数中的 null 或 undefined
- 从数组中删除 null 或undefined的值
- 检测:是否是一个函数
- 函数:是否属于异步函数
- 检测:是否为一个安全数组
- 检测:对象是否为一个安全对象
- 字符串相关方法
- 字符串填充:padStart 和 padEnd
- 字符串反转:reverse
- 第一个字母大写:toUpperCase
- 字符串数组分割:扩展运算符
- 使用多个分隔符分割字符串
- 检查字符串是否包含:includes
- 检查字符串的开头或结尾是否有特定序列:startsWith 和 endsWith 方法
- 字符串替换:正则或replaceAll
- 数字:截断数字
- 数字:四舍五入
- 数字:补零
- 数组相关方法
- 数组:找到最接近的数值
- 数组:生成数组
- 数组:打乱数组
- 数组:简单数据去重
- 数组:唯一值数据去重
- 数组:多数组取交集
- 数组:查找最大值索引
- 数组:查找最小值索引
- 数组:压缩多个数组
- 对象相关方法
- 对象:删除无效属性
- 对象:反转对象键值
- 对象:字符串转对象
- 比较两个对象
- Js中判断空对象
- 正则表达式
- 正则:手机号格式化
- 正则:去除多余空格
- 正则:每千位添加分隔符
- 正则:校验6到18位大小写字母数字下划线组成的密码
- 日期相关的方法
- 日期:判断日期是否为今天
- 日期:日期转换
- 日期:秒数转换
- 日期:获取某年某月的第一天
- 日期:获取某年某月的最后一天
- 日期:获取某年月份天数
- 本地存储相关方法
- 获取cookie
- BOM相关
- Web:重新加载当前页面
- Web:滚动到页面顶部
- Web:元素滚动
- Web:检查当前是否IE浏览器
- Web:从给定文本中剥离html
- 常用高频方法
- 防抖/节流
- 进制转换
- 复制文本
- 过滤特殊字符
- 随机颜色生成
- 将16进制的颜色转换成rgb
- 将 RGB 转换为十六进制
- 获取随机ip
- uuid:需要生成一个id
- 强制等待
- Ts 代码片段
- omit函数