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 相关文章推荐
kmock javascript 单元测试代码
Feb 06 Javascript
jquery常用技巧及常用方法列表集合
Apr 06 Javascript
jquery层级选择器的实现(匹配后代元素div)
Sep 05 Javascript
JS控件bootstrap suggest plugin使用方法详解
Mar 25 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
Vue单文件组件基础模板小结
Aug 10 Javascript
layui 给数据表格加序号的方法
Aug 20 Javascript
在vue项目中引用Iview的方法
Sep 14 Javascript
记一次用vue做的活动页的方法步骤
Apr 11 Javascript
一文了解Vue中的nextTick
May 06 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
Aug 23 Javascript
JavaScrip如果基于url实现图片下载
Jul 03 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
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
Sanic框架Cookies操作示例
2018/07/17 Python
python实现狄克斯特拉算法
2019/01/17 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
小学生家长寄语
2014/04/02 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
windows安装python超详细图文教程
2021/05/21 Python
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL