JavaScript基于自定义函数判断变量类型的实现方法

本文实例讲述了JavaScript基于自定义函数判断变量类型的实现方法。分享给大家供大家参考,具体如下:

通常用typeof来判断js变量的类型,但很多时候仅仅typeof满足不了要求的。

我写了一个自定义函数来做这个事,判断的比较全面了。

function varType(v){

if ( typeof v=== "object" ){

if (v=== null ) return 'null' ;

if (v. constructor )

return (v. constructor .toString()).match(/(?: )[/w/$]+/)[ 0 ];

if ( typeof typeof2=== 'undefined' && window .execScript){

window .execScript( 'Function vbsTypeName(o):vbsTypeName=TypeName(o):End Function' , 'vbscript' );

window .execScript( 'function typeof2(o){return vbsTypeName(o)}' , 'jscript' );

}

if ( typeof typeof2!== 'undefined' ){

return typeof2(v);

}

return "object" ;

}

return typeof v;

}

//对于普通js常量和js对象,各浏览器是基本一致的

alert (varType()); //undefined

alert (varType( 100 )); //number

alert (varType({})); //Object

alert (varType([])); //Array

alert (varType(/ /)); //RegExp

alert (varType( new Date ())); //Date

alert (varType( Date )); //function

alert (varType( Object )); //function

alert (varType( RegExp )); //function

//对于DOM对象,各浏览器可能会有不同值

alert (varType( window )); //IE:HTMLWindow2 FF:Window

alert (varType( document )); //IE:HTMLDocument FF:HTMLDocument

alert (varType( document .body)); //IE:HTMLBody FF:HTMLBodyElement

alert (varType( Option )); //IE:Object FF:function

alert (varType( Image )); //IE:Object FF:function

alert (varType( navigator )); //IE:DispHTMLNavigator FF:Navigator

//以下几个只适用于IE,其他内核浏览器不支持

alert (varType( ActiveXObject )); //IE:function

alert (varType( Enumerator )); //IE:function

alert (varType( new ActiveXObject ( "Scripting.Dictionary" ))); //IE:Dictionary

alert (varType( new Enumerator ())); //IE:Enumerator

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript遍历算法与技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

以上是 JavaScript基于自定义函数判断变量类型的实现方法 的全部内容, 来源链接: utcz.com/z/329792.html

回到顶部