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程序设计有所帮助。
热门推荐
10 广西考试祝福语结婚简短
11 猪年祝福语简短小孩
12 元旦祝福语送长辈简短
13 恭喜二宝祝福语简短
14 祝福语暖心话简短
15 国庆中秋祝福语简短兄弟
16 朋友订婚的祝福语简短
17 送弟弟中秋祝福语简短
18 爱生日祝福语简短独特