请选择 进入手机版 | 继续访问电脑版

易站网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 139|回复: 0

[前端交流] JavaScript检测数据类型

[复制链接]

24

主题

31

帖子

8944

积分

管理员

UID
1
易金
6975
好评
888
荣誉
888
买家信用
888
卖家信用
888
在线时间
61 小时
注册时间
2019-6-26

最佳新人活跃会员热心会员推广达人签到勋章灌水之王突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2019-7-3 19:31:06 | 显示全部楼层 |阅读模式
在JS中,我们常用的判断数据类型的方法,无非就是typeof,但是typeof也只能判断基本数据类型,想要准确的判断array,date等,还是需要自己想办法。

要获取一个对象的真实的内置类型,我们需要通过获取[[Class]]的属性值,在es5之前,该属性值只能通由Object.prototype.toString来访问,因此,通过Object.prototype.toString.call(arr)改变tostring方法的this指向,从而获得对象的内置类型。

以下方法手写的就是一个检测数据类型的方法, Object.prototype.toString.call获取的是一个OBJECT xxx的返回值,我们的类型无非就是后面的,然后将其转换为小写。
obj = 欲判断值
type为您想判断obj的类型是否为某种类型,不传入则直接返回数据类型,传入则对比您的数据类型是否正确。



function checkObjType(obj,type)        


{ var t = Object.prototype.toString.call(obj).slice(8,-1).toLowerCase();               
return type ? (type == t) : t;        }



这样我们就能更精确的获取数据类型。

信息来源:转载自 阿鑫博客 (http://www.jsxin.net/#/info?id=3





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|易站网

GMT+8, 2019-10-21 13:07 , Processed in 0.171601 second(s), 22 queries , Redis On.

拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,防范网络诈骗,远离网络犯罪

本站内容均为会员发表,并不代表易站网立场

Powered by Discuz! X3.4 易站网 bbs.ezhancn.com (苏ICP备19029021号-7) 苏公网安备33522102900125

快速回复 返回顶部 返回列表