类型判断原理

typeof简介:

  1. 原理:
    将需要判断的数值类型转换成二进制,再根据二进制的数值去判断该值的数据类型。通常用来判断简单类型。

  2. 二进制与一般类型对应关系:
    | 类型 | 二进制 |
    | object | 000 |
    | null | 000 |
    | float | 010 |
    | int | 001 |
    | string | 100 |
    | boolean | 110 |

instanceof原理:
instanceof用来检测constructor.prototype属性上是否存在参数object上,通常仅用来判断复杂类型。

Object.prototype.toString.call(需要判断的类型变量):
通过原型链上的函数,将类型转换为字符串形式,所有类型都会以字符串形式展示出来,结果为:’[object 类型名]’;

可以判断任何数据类型,不存在兼容问题

例如:[object string]

constructor:
通过访问该类型的构造函数来判断

eg:
(1).constructor === Number; // true

(new Function(){}) === Function; // true

缺点:如果创建一个对象来改变其原型,则判断会错误,其次,不能判断null,undefined,因为此两类不是由对象构建而来的

总结:一般在项目中,建议使用前两种来判断类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值