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 网站换肤功能实现代码
Nov 02 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
Jan 19 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
May 02 Javascript
jQuery中:focus选择器用法实例
Dec 30 Javascript
关于javascript中dataset的问题小结
Nov 16 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
JS输出空格的简单实现方法
Sep 08 Javascript
如何在Angular.JS中接收并下载PDF
Nov 26 Javascript
JavaScript使用FileReader实现图片上传预览效果
Mar 27 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 jQuery
node后端服务保活的实现
Nov 10 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/03/24 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
取选中的radio的值
2010/01/11 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
angular2模块和共享模块详解
2018/04/08 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
Python实现telnet服务器的方法
2015/07/10 Python
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
Django开发中的日志输出的方法
2018/07/02 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
adidas美国官网:adidas US
2016/09/21 全球购物
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
中学生学习生活的自我评价
2013/10/26 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
单位实习鉴定评语
2015/01/04 职场文书
项目验收申请报告
2015/05/15 职场文书