Das Beispiel in diesem Artikel beschreibt die Implementierungsmethode von JavaScript basierend auf benutzerdefinierten Funktionen zur Bestimmung von Variablentypen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Typeof wird normalerweise verwendet, um den Typ von js-Variablen zu bestimmen, aber in vielen Fällen kann Typeof allein die Anforderungen nicht erfüllen.
Zu diesem Zweck habe ich eine benutzerdefinierte Funktion geschrieben, und das Urteil ist umfassender.
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