- 方法一
之前介绍数据类型的时候,我们介绍了typeof可以用来返回数据类型。比如:
typeof "Bill" //返回 "string"
typeof 3.14 //返回 "number"
typeof NaN //返回 "number"
typeof false //返回 "boolean"
typeof [1,2,3,4] //返回 "object"
typeof undefined //返回 "undefined"
typeof null //返回 "object"
// 返回 "object"
typeof {name:'Bill', age:62}
但是,typeof判断数组的时候,返回的是object,这样,我们就没办法判断数组这种数据类型了。
其实,数组也确实是一种特殊的对象。那怎样判断是不是数组呢?
- 方法二
我们在介绍数组方法的时候,介绍了isArray方法。它是作用在Array类上的,用法如下:
var a = [];
Array.isArray(a); //返回true
isArray
返回布尔值,如果是数组返回true,否则返回false。
isArray一些老的浏览器并不支持。
不支持isArray方法的怎么办呢?
- 方法三
还有一个万能的方法:constructor
属性。
任何一种数据类型都有一个constructor属性。它是用来返回一个指向创建了该对象原型的函数引用。
我们直接判断constructor属性是否是Array就可以了。写个例子:
var test = [];
alert(test.constructor == Array); //弹出true
constructor
属性可以判断所有的数据类型,写个完整的判断吧:
//修改test的值,Type会返回相应的数据类型
var test = "";
var Type;
switch(test.constructor){
case Number:
Type = '数值';
break;
case String:
Type = '字符串';
break;
case Boolean:
Type = '布尔';
break;
case Array:
Type = '数组';
break;
case Date:
Type = '日期';
break;
case Object:
Type = '对象';
}
alert(Type);
好了,没有多余的废话,上来就是干货文章,如果还需要更多的前端知识文章,欢迎微信搜索公众号“刘小妞的栖息地”,或者识别图片的二维码查看,感谢大家的支持。