JS中检测数据类型的方式

1.typeof :检测基本数据类型,返回值是一个字符串(所以连续出现两个或以上的typeof时,结果都是"string")

包含"number"、"string"、"boolean"、"undefined"、"object"、"function"

要注意的是 typeof null --> "object"

typeof的局限性:不能具体检测object下的细分类型,比如Array,Object...

1 var num=9;
2 alert(typeof num); //"number"

2.instanceof :检测某个对象是否是这个类的一个实例,返回值是boolean

可以检测对象数据类型的细分

1 funcction Fn() {
2     this.a=15;
3 }
4 var f1=new Fn();
5 console.log(f1 instanceof Fn); //true
6 console.log(f1 instanceof Array); //false

console.log(f1 instanceof Object); // true ,f1不仅是Fn的实例,它也是一个对象数据类型的,所以也是Object的一个实例。

这里涉及到类、实例的一些探讨:

类,是函数数据类型的 typeof Fn --> "function"

实例,是对象数据类型的 typeof f1 --> "object"

而函数是具有两面性的,既是函数数据类型,也是对象数据类型

这里要把握好对象、类、实例的概念,理解JS中万物皆对象。

3.constructor :

4.Object.prototype.toString.call()

原文地址:https://www.cnblogs.com/cataway/p/4884986.html