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实现检测浏览器及版本的脚本代码
Jan 22 Javascript
js弹出层之1:JQuery.Boxy (二)
Oct 06 Javascript
YUI Compressor压缩JavaScript原理及微优化
Jan 07 Javascript
关于删除时的提示处理(确定删除吗)
Nov 03 Javascript
JS比较2个日期间隔的示例代码
Apr 15 Javascript
jquery  实现轮播图详解及实例代码
Oct 12 Javascript
js输入框使用正则表达式校验输入内容的实例
Feb 12 Javascript
layui分页效果实现代码
May 19 Javascript
Angularjs的$http异步删除数据详解及实例
Jul 27 Javascript
vue双向绑定及观察者模式详解
Mar 19 Javascript
Moment.js实现多个同时倒计时
Aug 26 Javascript
vue如何实现动态加载脚本
Feb 05 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错误提示的关闭方法详解
2013/06/23 PHP
php使用Jpgraph绘制3D饼状图的方法
2015/06/10 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
python实现决策树ID3算法的示例代码
2018/05/30 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
Python import与from import使用及区别介绍
2018/09/06 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
小学生学习雷锋倡议书
2014/05/15 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
学习十八大的感悟
2015/08/11 职场文书
员工旷工检讨书
2015/08/15 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
MySQL 角色(role)功能介绍
2021/04/24 MySQL
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python