位置:海鸟网 > IT > JavaScript >

Javascript类型检测

开门见山,我们先来看一下代码:

1 var is = function (obj,type) {  

2     var toString = Object.prototype.toString;  

3     var _baseTypes = {'undefined':'undefined','number':'number','boolean':'boolean','string':'string'};

4     return (_baseTypes[typeof obj]===type)||

5              (type === "Null" && obj === null) || 

6              (type==='Function'&&"object" === typeof document.getElementById ?

7              /^\s*\bfunction\b/.test("" + obj):toString.call(obj).slice(8,-1) === type)||

8              obj instanceof type;  

9 };

在讲解这个函数之前,让我们先来看一下t类型判断的几个关键:

兼容判断类型列表:

基本数据类型 undefined,string,number,boolean

复合数据类型 Date,String,Boolean,Number,Object,Function,Array,RegExp,Error

其他 instanceof 的范畴

参考:



1 http://lifesinger.org/blog/2009/02/javascript-type-check-1/

2 http://www.planabc.net/2010/01/23/repair_the_bug_of_isfunction_method_in_jquery/

 体会:

悲剧啊,第一次写博,没想到要花这么多精力

悲剧啊,参考永远是中文,估计水平也高不到哪里去,唉,英文不行,怎么办呢!