js一个简易的类型判断

 1 function type (obj, type) {
 2     var ts = {}.toString,
 3         _types = {
 4             'undefined' : 'undefined',
 5             'number' : 'number',
 6             'boolean' : 'boolean',
 7             'string' : 'string'
 8         },
 9         t = obj===null ? 'null' :
10         (_types[typeof obj] || ts.call(obj).slice(8,-1).toLowerCase());
11     return type ? t===type : t;
12 }
13 
14 alert(type(null));
15 alert(type({}));
16 alert(type([]));
17 alert(type(''));
18 alert(type(1));
19 alert(type(new Date()));
20 alert(type(/r/));
21 alert(type(new Error()));
22 alert(type(function(){}));
23 alert(type(window));  //?
24 alert(type(document));  //?
25 alert(type(document.createElement('div')));  //?
26 alert(type(document.getElementsByTagName('*')));  //?

 

后面4个测试可以看出 该方法对 window 等对象不能作出准确判断,但在实际使用基本够用了。

 使用方法一:

 type({});// return "object";

 使用方法二:

 type({},"object");// return true;

 

posted @ 2011-08-25 14:54  tangoboy  阅读(210)  评论(0编辑  收藏  举报