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 相关文章推荐
json跟xml的对比分析
Jun 10 Javascript
js 匿名调用实现代码
Jun 19 Javascript
Angular ng-class详解及实例代码
Sep 19 Javascript
HTML Table 空白单元格补全的简单实现
Oct 13 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
Oct 26 Javascript
jquery实时获取时间的简单实例
Jan 26 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
Nov 28 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
Dec 28 Javascript
Vue批量图片显示时遇到的路径被解析问题
Mar 28 Javascript
基于vue手写tree插件的那点事儿
Aug 20 Javascript
vue路由教程之静态路由
Sep 03 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
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/05/14 PHP
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
php设计模式之简单工厂模式详解
2014/09/04 PHP
WordPress网站性能优化指南
2015/11/18 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
python的range和linspace使用详解
2019/11/27 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
python中提高pip install速度
2020/02/14 Python
聚网科技C++面试笔试题
2015/09/01 面试题
Java如何获得ResultSet的总行数
2016/09/03 面试题
医学专业大学生求职的自我评价
2013/11/27 职场文书
优秀员工表扬信
2014/01/17 职场文书
初三政治教学反思
2014/01/30 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
感恩老师演讲稿400字
2014/08/28 职场文书
《山中访友》教学反思
2016/02/24 职场文书
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript