以下是JS数据类型的几种判断方式:
一、typeof操作符
对一个值使用 typeof 操作符可能返回下列某个字符串,返回的类型都是字符串形式。
注意:typeof不适合用于判断是否为数组。当使用typeof判断数组和对象的时候,都会返回object。
可以使用isArray()来判断是否为数组。
二、instanceof
instanceof 运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上。需要区分大小写。
简单的来说,instanceof 用于判断一个变量是否为某个对象的实例。
例:
var arr = new Array( );
alert(arr instanceof Array); // 返回true
注意:instanceof只能用来判断对象和函数,不能用来判断字符串和数字等。判断它是否为字符串和数字时,只会返回false。
三、constructor
constructor 属性返回对创建此对象的数组函数的引用。
在JavaScript中,每个具有原型的对象都会自动获得constructor属性。
四、prototype
以上三种方法多少都会有一些不能判断的情况。为了保证兼容性,可以通过Object.prototype.toString方法,判断某个对象值属于哪种内置类型,注意区分大小写。