javascript中类型的判断
大家都知道javascript中分为原始(值)类型和对象(引用)类型
- 原始类型:Null、Undefined、Boolean、String、Number
- 对象类型:Object
对象类型又可以基本分为三大类:原生对象、宿主对象和浏览器扩展对象,可参考下图:
那么如何准确地判别各种类型呢?
js判别类型的方式主要有以下几种:
1. typeof
2. Instanceof
3. Object.prototype.toString.call
4. constructor
下面分别针对这些判别方式做一下总结:
typeof
- 可以识别标准类型(Null除外)
- 不能识别具体的对象了类型(Function除外)
Instanceof
- 判别内置对象类型
- 不能判别原始类型
- 判别自定义对象类型
Object.prototype.toString.call
- 可以识别标准类型以及内置对象类型
- 不能识别自定义对象类型
constructor
- 判别标准类型(Null和Undefined除外)
- 判别内置对象类型
- 判别自定义对象类型
我们可以自己封装一个方法去判别所有的类型
1 | function getConstructorName(obj){ |