javascript中数据类型检查

js中数据类型检测是我们在工作中比较常遇到的问题,也是面试必考问题,今天我们就来梳理一下。

首先js中的数据类型分为两类:

1,基本数据类型:布尔、数值、字符串、undefined和null,以及es6新增的Symbol。

2,引用数据类型:function、array、object、以及es新增set、map。

对于类型检测我们常用的方法就是typeof,所以我们先看一下使用typeof来检测各种类型数据的返回值

 

 从图中我们可以看到对于基本数据类型,使用typeof检测除去null都返回类型本身,而null因为是表示空对象的引用所以返回objcect,但是对于引用数据类型貌似就有点让人头痛了,除了函数是返回function,其它都返回object,我们伟大的typeof也识别不出来了!

这个时候我们可以使用对象原型上的方法toString方法,对象中的toString返回一个标识类型的字符串,但是我们如果想在检测非对象数据的时候也使用此方法就可以用call来进行调用,即Object.prototype.toString.call()

 

 从图中我们可以看到此方法是比较通用的,不论是基本数据类型还是引用数据类型,我们都可以直接用这个方法了,再也不用担心有局限性了。

 

posted on 2020-09-24 15:43  hero小呆  阅读(147)  评论(0)    收藏  举报

导航