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('*'))); //?
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;