js中数据类型检测方法:

javascript中有五种检测数据类型的方法,分别为typeof运算符constructor方法,instanceof运算符object.prototype.toString方法和Array.isArray(用于检测数组),下面分别介绍以上几种方法:

1.typeof运算符:

是js原生提供的运算符,比较常用,返回一个

表示参数的数据类型的字符串

var a = "javascript";

console.log(typeof(a));    // string

typeof运算符返回值总结:

|数据类型|返回值|

|-----------|-----------|

|undefined|"undefined"|

|null |"ocject"|

|boolean| "boolean"|

|number| "number"|

|String| "string"|

|function| "function"|

|array|"object"|

由此可见,当要检测数组和null时都返回object,因此不可以用typeof检测数组

2.constructor方法:

利用constructor方法检测数组:实例化的数组拥有一个constructor属性,这个属性指向生成这个数组的方法

例如:

var a = [];

console.log(a.constructor);  //functionArray(){[native code]};

可以看出,数组是由Array函数实例化的其他类型测试代码如下:

var a - {};

console.log(a.constructor);   //function Object(){[native code]};

var b = /^[0-9]$/;

console.log(b.constructor);  //function RegExp(){[native code]}

var c = null ;

console.log(c.constructor);   //报错

此方法可以用来检测数组,例如:

var a = [];

console.log(a.constructor==Array);  //true

但是用constuctor测试数组是不一定准确的,因为constuctor属性可以被修改,修改后将返回被修改后类型

3.instanceof运算符

instanceof运算符

你可能感兴趣的:(js中数据类型检测方法:)