js中数据类型检测

本文介绍了JavaScript中三种常见的类型检测方法:typeof操作符、instanceof关键字及Object.prototype.toString.call()方法。详细探讨了这些方法如何应用于基本类型和复杂类型的数据检测,并指出了各自的优缺点。

我们熟知的类型检测方式有三种:

1.typeof

用于检测基本数据类型string number 布尔 undefined (不能用来检验复杂数据类型和null);

能检测:

1.undefined
console.log(typeof undefined);//undefined
2.boolean
console.log(typeof true);//boolean
3.string
console.log(typeof '9');//string
4.number
console.log(typeof 5);//number
5.function
console.log(typeof function(){});//function

不能检测

1.null

console.log(typeof null);//object

2.object

console.log(typeof {});//object

3.Array

console.log(typeof []);//object

2.instanceof

instanceof 用于判断一个变量是否某个对象的实例

其中在判断function,array的时候会出错。

 var a=new Array();console.log(a instanceof Object)

true

 var a=function(){};console.log(a instanceof Object)

True

这并不是我们希望看到的,故我们使用Object.prototype.toString.call(数据名)来解决。

3.Object.prototype.toString.call(数据名);

var a = new Object();

Object.prototype.toString.call(a);//[Object Object];

var a = new Array();

Object.prototype.toString.call(a);//[Object Array];

var a = function(){};

Object.prototype.toString.call(a);//[Object Function];

故我们可以通过原型的toString方法结合call来判断复杂数据类型。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值