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 uaMatch源代码
Feb 14 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
Nov 03 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
Jun 06 Javascript
JavaScript实现大数的运算
Nov 24 Javascript
javascript顺序加载图片的方法
Jul 18 Javascript
详解AngularJS实现表单验证
Dec 10 Javascript
JS获取随机数和时间转换的简单实例
Jul 10 Javascript
JavaScript面试题(指针、帽子和女朋友)
Nov 23 Javascript
完美解决axios跨域请求出错的问题
Feb 05 Javascript
Vue实现本地购物车功能
Dec 05 Javascript
JS 数组和对象的深拷贝操作示例
Jun 06 Javascript
Vue中 axios delete请求参数操作
Aug 25 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
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
2017/07/07 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
原生js实现二级联动菜单
2019/11/27 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
使用python3.5仿微软记事本notepad
2016/06/15 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python中的&&及||的实现示例
2019/08/07 Python
市场总经理岗位职责
2014/04/11 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
详解Django的MVT设计模式
2021/04/29 Python
Vue router配置与使用分析讲解
2022/12/24 Vue.js