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 相关文章推荐
一个简单的JavaScript数据缓存系统实现代码
Oct 24 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
Apr 02 Javascript
Extjs优化(一)删除冗余代码提高运行速度
Apr 15 Javascript
JavaScript排序算法之希尔排序的2个实例
Apr 04 Javascript
实例代码讲解jquery easyui动态tab页
Nov 17 Javascript
Javascript打印局部页面实例
Jun 21 Javascript
浅析jQuery Ajax通用js封装
Jun 22 Javascript
全面了解函数声明与函数表达式、变量提升
Aug 09 Javascript
WebView启动支付宝客户端支付失败的问题小结
Jan 11 Javascript
Vue.js学习笔记之修饰符详解
Jul 25 Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 Javascript
webpack+vue.js构建前端工程化的详细教程
May 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的FTP学习(三)
2006/10/09 PHP
PHP4.04简明安装
2006/10/09 PHP
smarty section简介与用法分析
2008/10/03 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
图片之间的切换
2006/06/26 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
日常收集整理的JavaScript常用函数方法
2015/12/10 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
Python3读取文件常用方法实例分析
2015/05/22 Python
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
python中logging包的使用总结
2018/02/28 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
高中生自我评价个人范文
2013/11/09 职场文书
九一八事变演讲稿
2014/09/05 职场文书
干部作风建设心得体会
2014/10/22 职场文书
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技