判断数据类型

小编 2026-06-12 阅读:913 评论:0
判断数据类型的偏方很多,但是很多就不是那么的特别准确,比如 typeof  没法判断是 Obje...

判断数据类型的偏方很多,但是很多就不是那么的特别准确,比如 typeof  没法判断是 Object 还是Array。

通用方法就是查找该数据类型的原型。

首先我们宏观的知道下,在 JavaScript 中所有的类型如果没有指明继承某个类型,则默认是继承的 Object 类型。这种 默认继承也是通过原型链的方式完成的。

可以理解 Array 继承了 Object,Number 继承了 Object 等。

来微观的理解下,这些关系。

Object 的原型:

判断数据类型

object 的原型中有这些 属性或方法,一看我们就很直观的可以认为 这个 Object.prototype 是一个对象,正应了我们之前学习的 原型也是一个对象

 来看看 Array 的原型

判断数据类型

图片有点长,就是截图全点,看到下面的 __proto__ 这个属性。 对比这里 __proto__ 再看看Object 的 prototype ,看看,是不是一毛一样啊! 眼镜有欺骗的嫌疑,我们用计算机代码说出事实。

判断数据类型

对比这个直接翻译一下: 数组的原型的属性__proto__  等于 对象的原型。好像没明白这个意思。。。,这就是我们之前理解的 数组的原型对象继承了的 Object 的原型对象,怎么继承的?或者他们怎么关联的,就是通过这个 内部属性__proto__。

以上暂时理解这么多,下面接入正题,我们该如何正确的知道数据的类型是什么呢?

——————————————————————————————————————————————

来再看看 Object 的 prototype,

判断数据类型

里面有个 toString 的方法,我们来调用下,返回了一个 "[object Object]" 的字符串

判断数据类型

既然Array.prototype 也有toString 方法,那我们来调用一下。 返回的是一个空字符串。。。。 这是为啥呢,和Object 都有toString ( ),为啥我数组返回的就是一个空字符串。object 就能返回 一个 Object 的 字符串呢?纠结中,我哪不如人家对象了。。。。。 

判断数据类型

不管为什么了,既然数组和对象有继承关系,那我数组不就是可以“借用” 我 “爹”的 能力了,这样想的话, call 和apply 就蹦出来了。

判断数据类型

再来看看 number 

判断数据类型

 集合一下:

判断数据类型

这个方法就可以知道,我们能够很准确的判断我们的数据类型了。

 

结束:以上是我的个人看法,如果有不妥的地方,敬请批评指出,共同进步。

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表