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 相关文章推荐
用window.location.href实现刷新另个框架页面
Mar 07 Javascript
jQuery each()小议
Mar 18 Javascript
javaScript 计算两个日期的天数相差(示例代码)
Dec 27 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
Mar 28 Javascript
AngularJS中指令的四种基本形式实例分析
Nov 22 Javascript
React Native实现地址挑选器功能
Oct 24 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
Dec 26 Javascript
除Console.log()外更多的Javascript调试命令
Jan 24 Javascript
JS中min函数实例讲解
Feb 18 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
Feb 26 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
Sep 02 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
Jul 28 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上传图片、删除图片实现代码
2010/05/12 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
js中直接声明一个对象的方法
2014/08/10 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
python改变日志(logging)存放位置的示例
2014/03/27 Python
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python工程师面试必备25条知识点
2018/01/17 Python
详解Python装饰器
2019/03/25 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
Python 调用 Windows API COM 新法
2019/08/22 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
学生思想表现的评语
2014/01/30 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
大跃进口号
2014/06/16 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL