封装一个判断js数据类型的工具函数

function getType(obj){
  let type  = typeof obj
  if (type !== "object") {    // 先进行typeof判断,如果是基础数据类型,直接返回
    return type
  }
  // 对于typeof返回结果是object的,再进行如下的判断,正则返回结果
  return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/, '$1')
}

看下效果:

getType([])          // "Array" typeof []是object,因此toString返回
getType('123')       // "string" typeof 直接返回
getType(window)      // "Window" toString返回
getType(null)        // "Null"首字母大写,typeof null是object,需toString来判断
getType(undefined)   // "undefined" typeof 直接返回
getType()            // "undefined" typeof 直接返回
getType(function(){}) // "function" typeof能判断,因此首字母小写
getType(/123/g)      //"RegExp" toString返回

管你什么类型,通通拿下!

#js#
全部评论

相关推荐

评论
点赞
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务