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]",

相关推荐
Lenyiin5 分钟前
makefile
java·大数据·前端
涡轮蒸鸭猫喵6 分钟前
-------------------UDP协议+TCP协议-------------------------
java·网络·笔记·网络协议·tcp/ip·udp
汝生淮南吾在北7 分钟前
SpringBoot+Vue非遗文化宣传网站
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
无名-CODING8 分钟前
从零手写一个迷你 Tomcat —— 彻底理解 Servlet 容器原理
java·servlet·tomcat
速易达网络10 分钟前
Java Web旅游网站系统介绍
java·tomcat
AI分享猿14 分钟前
Java后端实战:SpringBoot接口遇袭后,用轻量WAF兼顾安全与性能
java·spring boot·安全·免费waf·web防火墙推荐·企业网站防护·防止恶意爬虫
invicinble15 分钟前
关于认识,和优化idea开发
java·ide·intellij-idea
⑩-15 分钟前
MVC-三层架构详解
java·架构·mvc
小刘不想改BUG16 分钟前
LeetCode 56.合并区间 Java
java·python·leetcode·贪心算法·贪心
Pluchon16 分钟前
硅基计划4.0 算法 BFS最短路问题&多源BFS&拓扑排序
java·算法·哈希算法·近邻算法·广度优先·宽度优先·迭代加深