JS 中类型鉴别

  JS中的基本类型有:数字(Number(NaN,Infinity)),字符串(String),Undefined,Null,Boolean

  引用类型有:数组(Array),对象(Object),函数(Function),日期(Data),正则(RegExp)

鉴别类型一般使用typeof关键字,但是typeof运算符有很多坑:

  1:对null返回的是object,但是不能将属性和方法加在null身上。

  2:对NaN和Infinity返回的是number,但是这两个量是不可以用来做数值计算的。

  3:不能区分对象,数组,Data,正则及null,都返回的是object。

  最完整的方法是使用Object.prototype.toString方法(前提是此方法没有被重写的情况下)来鉴别各种类型。

 typeofObject.prototype.toString.call(XX)
numbernumber[object Number]
 NaN number [object Number]
 Infinitynumber[object Number]
string    string[object String]
undefinedundefined[object Undefined]
nullobject[object Null]
boolboolean[object Boolean]
arrayobject[object Array]
objobject[object Object]
funfunction[object Function]
Data    object[object Data]
RegExpobject[object RegExp]

 

 

 

 

 

 

 

 

 

 

  

 

  此方法唯一的缺点就是没办法区分NaN,Infinity和number,其实从本质上说NaN和Infinity是number的两个特例,所以按照number来标识也不错,只是以后遇见需要判断里的时候要先排除这两个特例再辅之Object.prototype.tostring.call()就能完善的区分各种类型了.

转载于:https://www.cnblogs.com/Flychown/p/6222992.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值