实例方法

每个对象都有一个 toString() 方法,当该对象被表示为一个文本值时,或者一个对象以预期的字符串方式引用时自动调用。默认情况下,toString() 方法被每个 Object 对象继承。如果此方法在自定义对象中未被覆盖,toString() 返回 “[object type]”,其中 type 是对象的类型。以下代码说明了这一点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const getDataType = data => {
   const toString = Object.prototype.toString;
   const dataType =
        data instanceof Element
          ? "element" // 为了统一DOM节点类型输出
          : toString
              .call(data)
              .replace(/\[object\s(.+)\]/"$1")
              .toLowerCase()
   return dataType
}

console.log(getDataType([2])) // array
console.log(getDataType({a: 2})) // object
console.log(getDataType('5')) // string
console.log(getDataType(5)) // number