JS 类型判空

166 阅读1分钟
function isEmpty(obj) {
  try {
    if (obj === null || obj === undefined) {
      return true
    }
    // 判断参数是否是布尔、函数、日期、正则,是则返回false
    if (typeof obj === 'boolean' || typeof obj === 'function' || obj instanceof Date || obj instanceof RegExp) {
      return false
    }

    // 判断数字是否是NaN
    if (typeof obj === 'number') {
      return isNaN(obj)
    }

    // 判断参数是否是字符串,去空,如果长度为0则返回true
    if (typeof obj === 'string') {
      return !obj.trim().length
    }

    // 对象、数组判空
    return !Object.keys(obj).length
  } catch (e) {
    return true
  }
}

备注:map、set等暂未处理~