javascript中判断数据类型的几种方法

在看javascript高级程序设计,里面讲到了怎么来判断一个变量的数据类型的方法,我总是用混,现在总结一下,希望对大家也会有帮助。

1.typeof 

typeof是操作符,不是函数。其返回的是一个字符串。返回值有五种:

“undefined”//表明操作数是undefined

"number"//表明操作数是Number类型的数

“boolean”//表明操作数是Boolean类型的数

“string”//表明操作数是String类型的数

“object”//表明操作数是null或者Object类型的数

“function”//表明操作数是Function类型的数

2.instanceof

如果是引用类型的数值,如Array,Date,RegExp这些值使用typeof得出的类型都是object,那就不能使用typeof来准确判断引用类型。那么如何判断是否为Array或者Date,RegExp类型呢,instanceof可以判断。instanceof 不能判断Null类型和Undefined类型的值,会报错。

var arr=['1','3'];

typeof arr;//object

arr instanceof Array;//true

3.[Object].constructor

此类方法也可以准确判断出引用类型的值的数据类型,也可以判断出基本类型数值的数据类型。此方法也不能判断Null和Undefined类型的值,也会报错。

4.Object.prototype.toString.call();

这种方法可以判断所有的类型值,只不过在返回的字符串中都是“[object ]”后再加上值的数据类型。

Object.prototype.toString.call(0)//"[object Number]"

Object.prototype.toString.call(undefined)//"[object Undefined]"

Object.prototype.toString.call(null)//"[object Null]"

Object.prototype.toString.call('222')//"[object String]"

Object.prototype.toString.call([1,2,'3',])//"[object Array]"

Object.prototype.toString.call(function(){})//"[object Function]"

Object.prototype.toString.call(new Date(2001,2,4))//"[object Date]"

这是我总结的判断数值数据类型的方法,如果大家还有什么好的建议,可以一起交流学习。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值