JavaScript基于自定义函数判断变量类型的实现方法
本文实例讲述了JavaScript基于自定义函数判断变量类型的实现方法。分享给大家供大家参考,具体如下:
通常用typeof来判断js变量的类型,但很多时候仅仅typeof满足不了要求的。
我写了一个自定义函数来做这个事,判断的比较全面了。
functionvarType(v){ if(typeofv==="object"){ if(v===null)return'null'; if(v.constructor) return(v.constructor.toString()).match(/(?:)[/w/$]+/)[0]; if(typeoftypeof2==='undefined'&&window.execScript){ window.execScript('FunctionvbsTypeName(o):vbsTypeName=TypeName(o):EndFunction','vbscript'); window.execScript('functiontypeof2(o){returnvbsTypeName(o)}','jscript'); } if(typeoftypeof2!=='undefined'){ returntypeof2(v); } return"object"; } returntypeofv; } //对于普通js常量和js对象,各浏览器是基本一致的 alert(varType());//undefined alert(varType(100));//number alert(varType({}));//Object alert(varType([]));//Array alert(varType(//));//RegExp alert(varType(newDate()));//Date alert(varType(Date));//function alert(varType(Object));//function alert(varType(RegExp));//function //对于DOM对象,各浏览器可能会有不同值 alert(varType(window));//IE:HTMLWindow2FF:Window alert(varType(document));//IE:HTMLDocumentFF:HTMLDocument alert(varType(document.body));//IE:HTMLBodyFF:HTMLBodyElement alert(varType(Option));//IE:ObjectFF:function alert(varType(Image));//IE:ObjectFF:function alert(varType(navigator));//IE:DispHTMLNavigatorFF:Navigator //以下几个只适用于IE,其他内核浏览器不支持 alert(varType(ActiveXObject));//IE:function alert(varType(Enumerator));//IE:function alert(varType(newActiveXObject("Scripting.Dictionary")));//IE:Dictionary alert(varType(newEnumerator()));//IE:Enumerator
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript遍历算法与技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。