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;