如何检测数据类型
检测数据类型不仅在面试中,日常业务代码也是高频出现的场景。在这里总结一下
首先,要知道总共有几种数据类型,截至今日,共分7中基本数据类型:string, number, bigint, boolean, null, undefined, symbol和object类型,总共8种。
常见的方式是使用typeof方法,基本数据类型都可以返回,还可以判断方法,其余统一返回”object”,注意,其中typeof null === ‘object’
| 数据 | 输出值 |
|---|---|
| Undefined | “undefined” |
| Null | “object” |
| Boolean | “boolean” |
| Number | “number” |
| BigInt | “bigint” |
| String | “string” |
| Symbol | “symbol” |
| 宿主对象 | 取决于具体实现 |
| Function 对象 | “function” |
| 其他任何对象 | “object” |
这种方式很便捷,但不能检测出数组类型。
ES6中数组新增isArray方法也可以用来检测
那有没有更普适的方法呢?答案是有的,使用Object.prototype.toString()方法:
示例:

此方法会返回形如[object XXX]格式的字符串,其中XXX可以用来判断我们的数据类型
觉得作者写得不错?不妨轻击下方按钮~