TYM042
js 数据类型检测
发布时间:2021-03-31
作者:yaming042
阅读量:- 次
本文字数:4.2k
阅读时长 ≈ 4 分钟
在实际前端编码过程中,对变量类型的校验是必不可少的,比如你在接收到接口返回的列表数据后直接使用sort()进行排序,此时是否有问题?大部分时候是没有问题的,但是如果数据库中没有数据,接口可能返回的是null,你对null进行sort排序,会怎么样?可能页面直接空白崩溃,所以对数据类型进行校验还是很必要的。
下面介绍几种常用的方法:
typeof
使用 typeof
方法来检测数据类型,基本类型大部分都能被准确检测并返回正确的字符串(除了 Null 类型,其返回 object 字符串),而引用类型大部分都不能够被准确检测(除了 Function 类型能够准确返回 function 字符串外,其它的都返回了 object 字符串)。
Object.prototype.toString
Object.prototype.toString
返回的 [object class] 字符串中,class 准确的表示了各个数据的类型,例如:
1 | Object.prototype.toString.call(1) === '[object Number]' // true |
Object.prototype.toString
与 typeof 不同的是,class 所代表的数据类型字符串首字母是大写的,而不像 typeof 返回的是小写字符串。
下面封装一个通用方法:
1 | /** |