在实际项目开发中,可能经常会遇到数据类型的判断,我也是经常去度娘,没有仔细的总结过,最近闲下来就做一个总结吧。
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,谢谢
原文:http://www.cnblogs.com/oygg/p/5830160.html