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


Posted in Javascript onNovember 23, 2016

本文实例讲述了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 相关文章推荐
jquery select(列表)的操作(取值/赋值)
Mar 16 Javascript
javasctipt如何显示几分钟前、几天前等
Apr 30 Javascript
javascript从image转换为base64位编码的String
Jul 29 Javascript
node.js中的url.format方法使用说明
Dec 10 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
Sep 16 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 Javascript
JS跳转手机站url的若干注意事项
Oct 18 Javascript
angularJS自定义directive之带参方法传递详解
Oct 09 Javascript
Javascript实现动态时钟效果
Nov 17 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
Sep 19 Javascript
JS浏览器BOM常见操作实例详解
Apr 27 Javascript
详解vue 组件注册
Nov 20 Vue.js
JavaScript实现的CRC32函数示例
Nov 23 #Javascript
JavaScript 控制字体大小设置的方法
Nov 23 #Javascript
微信小程序  wx.request合法域名配置详解
Nov 23 #Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 #Javascript
自己封装的一个简单的倒计时功能实例
Nov 23 #Javascript
jQuery实现根据生日计算年龄 星座 生肖
Nov 23 #Javascript
JS DOMReady事件的六种实现方法总结
Nov 23 #Javascript
You might like
第三节--定义一个类
2006/11/16 PHP
PHP PDO函数库详解
2010/04/27 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
PHP递归算法的简单实例
2019/02/28 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
jquery中this的使用说明
2010/09/06 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
ListBox实现上移,下移,左移,右移的简单实例
2014/02/13 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
python 实现在Excel末尾增加新行
2018/05/02 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
使用python实现学生信息管理系统
2021/02/25 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
大学生社团活动总结
2014/04/26 职场文书
应聘教师求职信
2014/07/19 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
裁员通知
2015/04/25 职场文书
旷工检讨书大全
2015/08/15 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android