类型判断无脑封装, 从此告别思前想后

186 阅读1分钟

一键封装

判断数据类型时, 没有一个完美的方法做类型判断 用这个吧?


function getObjectType(){
  let obj = {}
  let str = 'Array Date RegExp Object Error'
  str.split(' ').forEach(item => obj[`[object ${item}]`] =item.toLowerCase())
  return obj 
}

function type(data){
     const obj =  getObjectType()
     if(data === null) return String(null)
     return typeof(data) === 'object' 
     ? obj[Object.prototype.toString.call(data)]
     : typeof(data)
}

type(null)
type([])
type({})
type(new Date())
type(new RegExp())