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 相关文章推荐
Display SQL Server Version Information
Jun 21 Javascript
Javascript中Eval函数的使用说明
Oct 11 Javascript
浅析document.ready和window.onload的区别讲解
Dec 18 Javascript
动态载入js提高网页打开速度的方法
Jul 04 Javascript
jQuery解析json格式数据简单实例
Jan 22 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
Jan 10 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
Apr 23 jQuery
原生JS实现简单的倒计时功能示例
Aug 30 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
Sep 05 Javascript
JS工厂模式开发实践案例分析
Oct 17 Javascript
vue请求数据的三种方式
Mar 04 Javascript
vue cli4.0项目引入typescript的方法
Jul 17 Javascript
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 定界符 使用技巧
2009/06/14 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
微信小程序实现下拉框功能
2019/07/16 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
python中使用enumerate函数遍历元素实例
2014/06/16 Python
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
Python中的filter()函数的用法
2015/04/27 Python
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
如何将python中的List转化成dictionary
2016/08/15 Python
Python算法应用实战之栈详解
2017/02/04 Python
对python中的logger模块全面讲解
2018/04/28 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
Python中的引用知识点总结
2019/05/20 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
计算机专业推荐信范文
2013/11/27 职场文书
公积金转移接收函
2014/01/11 职场文书
中学生校园广播稿
2014/01/16 职场文书
科研课题实施方案
2014/03/18 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
西安事变观后感
2015/06/12 职场文书