Object.prototype.toString.call(value)

这不是toString方法吗,转成字符串吗?
其实toString()是object原型上的方法,所有引用类型都能继承它,它返回的是"[object type]",type为object对象类型。

判断数据的精确类型

既然引用类型都有这个方法,为什么返回的形式并不都是"[object type]"呢?再来看看mdn
判断数据的精确类型
发现大部分重写了toString()方法,也就是说比如数组的原型链有两个toString方法,那么就会继承原型链上离自己最近的方法,所以数组的toString()是转成字符串。要想调用object原型链上的toString(),可以改变this的指向:Object.prototype.toString.call(value)
判断数据的精确类型

instanceof :运算符用于某个实例对象的原型链上是否存构造函数的 prototype 属性
typeof : 判断数据类型
判断数据的精确类型

这两种方法在判断数据的精确类型上都不准确,如果只是需要判断基本数据类型,typeof就足够。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-03
  • 2021-08-04
  • 2022-12-23
  • 2021-11-20
猜你喜欢
  • 2021-11-20
  • 2022-12-23
  • 2022-12-23
  • 2021-05-03
  • 2021-12-23
相关资源
相似解决方案