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 相关文章推荐
利用onresize使得div可以随着屏幕大小而自适应的代码
Jan 15 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
Mar 21 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
Sep 03 Javascript
BootStrap制作导航条实例代码
May 06 Javascript
深入理解JS中的Function.prototype.bind()方法
Oct 11 Javascript
vue实现全选、反选功能
Nov 17 Javascript
Angular实现双向折叠列表组件的示例代码
Nov 21 Javascript
js阻止默认右键的下拉菜单方法
Jan 02 Javascript
微信小程序列表中item左滑删除功能
Nov 07 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
Nov 18 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
Sep 21 Javascript
Vue中使用wangeditor富文本编辑的问题
Feb 07 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中用正则表达式清除字符串的空白
2011/01/17 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
常用jQuery代码分享
2015/07/14 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
django orm 通过related_name反向查询的方法
2018/12/15 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
Python代码执行时间测量模块timeit用法解析
2020/07/01 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
会计毕业生求职简历的自我评价
2013/10/20 职场文书
团组织关系介绍信
2014/01/12 职场文书
学校大课间活动方案
2014/01/30 职场文书
党建目标管理责任书
2014/07/25 职场文书
演讲开场白台词大全
2015/05/29 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript
Python学习之异常中的finally使用详解
2022/03/16 Python
Java 定时任务技术趋势简介
2022/05/04 Java/Android