js检测数据类型方式(typeof instanceof Object.prototype.toString.call())

typeof

使用 typeof 检测数据类型,首先返回的都是一个字符串,其次字符串中包含了对应的数据类型;

缺点:

  • typeof null === "object"
  • 不能具体细分是数组、正则还是对象中其他值,使用 typeof 检测数据类型对于对象数据类型中的值返回结果都是"object"

总结:主要用来检测基本类型值(除null)和函数类型值;

instanceof

instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上

复制代码
object instanceof constructor

object为实例对象,constructor为构造函数

构造函数通过new可以实例对象,instanceof能判断这个对象是否是之前那个构造函数生成的对象

  • instanceof 检测某一个实例是否属于某个类;
  • 不能用来处理字面量方式创建出来的基本数据类型值 ,对于基本数据类型来说,字面量方式创建出来的结果和实例方式创建出来的结果是有区别的。严格意义上来说只有实例创建出来的结果才是标准的对象数据类型值,字面量方式创建出来的基本数据类型值,是不严谨的实例,
    instanceof 特性,只要在当前实例的原型上,检测出来的结果都是 true

Object.prototype.toString.call()

toString() 方法返回一个表示该对象的字符串。

对象中的 toString() 方法,当该对象被表示为一个文本值时,或者一个对象以预期的字符串方式引用时自动调用。默认情况下,toString() 方法被每个 Object 对象继承。如果此方法在自定义对象中未被覆盖,toString() 返回 "[object type]",

相关推荐
源码技术栈2 分钟前
智慧工地微服务架构+Java+Spring Cloud +Uni-App +MySql开发,在微信公众号、小程序、H5、移动端
java·ai·saas·智慧工地·智慧工地项目·可视化大屏·智慧工地系统
雯0609~3 分钟前
uni-app:防止重复提交
前端·javascript·uni-app
爱吃大芒果3 分钟前
Flutter 自定义 Widget 开发:从基础绘制到复杂交互
开发语言·javascript·flutter·华为·ecmascript·交互
老华带你飞6 分钟前
健身房预约|基于springboot 健身房预约小程序系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·小程序
2501_918126916 分钟前
用html5写一个国际象棋
前端·javascript·css
帅得不敢出门9 分钟前
MTK Android11 APP调用OTA升级
android·java·开发语言·framework
李拾叁的摸鱼日常12 分钟前
ThreadLocal 内存泄漏深度解析:原因、避坑指南与业务最佳实践
java·面试
Kiri霧14 分钟前
Go Defer语句详解
java·服务器·golang
2401_8603195214 分钟前
在React Native中开发一个轮播组件(Swipe轮播),通过组件react-native-snap-carousel来实现
javascript·react native·react.js
Q_Q51100828514 分钟前
基于Java的加油站销售积分管理系统的设计与实
java·开发语言