本文實例講述了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程序設計有所幫助。