【前端理论】四种数据类型检测方法

一、typeof [value]

用途:检测数据类型的运算符;

细节点:

  • 特点:typeof检测出的结果都是小写字符串形式,包含对应的数据类型,所以typeof typeof []结果就是typeof "object"==》"string"
  • 特点:NaN/Infinity都是数字类型,检测结果正常是 "number"
  • 弊端:typeof null的结果是"object"(这是浏览器的bug,因为所有值在计算中都是二进制编码存储,浏览器默认把前三位是000的当做对象,null的二进制编码前三位是000,所以被误当做对象判断;Object.prototype.__proto__==null;Object(最高层)类的原型对象的原型就是指向null);
  • 弊端:typeof 普通对象/数组对象/正则对象...结果都是"object",所以 typeof 方法不能更细地分辨属于哪种对象。
if( x != null && typeof x == 'object' ){//当x是任意对象时进行操作}
typeof(function(){}) //= "function"

二、[ example ] instanceof [ class ]

用途:检测某一个实例是否属于这个类;

弊端:

三、[ example ].constructor === [ class ]

用途:检测实例和类的关系,从而检测数据类型,实例的原型_proto_与类的原型对象指向一样,类的原型对象上有constructor属性指向类本身;

弊端:

四、Object.prototype.toString.call( [value] )

用途:借助Object类的原型对象属性检测类型;

弊端:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值