js判断类型的方法

在实际项目开发中,可能经常会遇到数据类型的判断,我也是经常去度娘,没有仔细的总结过,最近闲下来就做一个总结吧。

javascript的基本数据类型有:Undefined、Null、Boolean、Number、String。还有一种引用数据类型Object,且在Object的基础上继承出更多的类型,如Array,Date,Function等,当然还包括我们自己创建的构造函数;

那怎样比较严谨的去判断数据的类型,在开发中就显得比较重要,度娘的时候看到了很多方法,归结起来无非三种:

1、constructor(构造函数)

constructor 属性返回对创建此对象的数组函数的引用,(a.constructor == Array)  // a实例所对应的构造函数是否为Array? true or false

console.log([].constructor == Array);
console.log({}.constructor == Object);
console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(true.constructor == Boolean);

2、instanceof(实例)

instance,故名思义,实例,例子,所以instanceof 用于判断一个变量是否某个对象的实例

var a=[];
console.log(a instanceof Array) //返回true

3、toString

该方法比较复杂,就不做过多的解释,具体如下:

var arr = [];
Object.prototype.toString.call(arr)=='[object Array]';

该方法是比较严谨的,对应的其他类型数据判断为:[object Object],[object String],[object Number],[object Boolean]

 

参考其他博主的经验以及部分个人总结,如有侵权,请及时联系本人,QQ:435641688,谢谢

 

posted @ 2016-09-01 15:44  欧小阳  阅读(990)  评论(0编辑  收藏  举报