Utils

准确判断数据类型

准确判断数据类型

前言

在 ECMAScript 规范中,共定义了 7 种数据类型,分为基本类型和引用类型两大类。

基本类型:String、Number、Boolean、Symbol、Undefined、Null
引用类型:Object
引用类型除 Object 外,还包括 Function 、Array、RegExp、Date 等等

相关代码

/**
 * @description: 判断数据类型
 * @param any
 * @return 数据类型
 */
function getType(obj) {
  let type = typeof obj;
  if (type != "object") {
    return type;
  }
  return Object.prototype.toString
    .call(obj)
    .replace(/^\[object (\S+)\]$/, "$1");
}

typeof 的局限

typeof 只能用于判断基本类型,如果要判断引用类型,可以使用 instanceof 或者 Object.prototype.toString.call(obj) 方法。