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中:focus选择器用法实例
Dec 30 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
Nov 05 Javascript
JavaScript地理位置信息API
Jun 11 Javascript
JavaScript中的对象和原型(一)
Aug 12 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
深入理解vue-router之keep-alive
Aug 31 Javascript
Angular 如何使用第三方库的方法
Apr 18 Javascript
浅谈JS中this在各个场景下的指向
Aug 14 Javascript
layui树形菜单动态遍历的例子
Sep 23 Javascript
vue 开发之路由配置方法详解
Dec 02 Javascript
利用原生JS实现欢乐水果机小游戏
Apr 23 Javascript
Vue和Flask通信的实现
May 19 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
PHP中,文件上传
2006/12/06 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
PHP生成RSS文件类实例
2014/12/05 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
php常用数组函数实例小结
2016/12/29 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
详解vue如何使用rules对表单字段进行校验
2018/10/17 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
简单介绍django提供的加密算法
2019/12/18 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
python数据抓取3种方法总结
2021/02/07 Python
C语言中break与continue的区别
2012/07/12 面试题
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
秋季运动会广播稿大全
2014/02/17 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
银行求职信范文
2014/05/26 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
优秀团员事迹材料
2014/12/25 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
js之ajax文件上传
2021/05/13 Javascript
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技