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 相关文章推荐
基础的prototype.js常用函数及其用法
Mar 10 Javascript
js常见表单应用技巧
Jan 09 Javascript
js使用函数绑定技术改变事件处理程序的作用域
Dec 26 Javascript
jquery中checkbox全选失效的解决方法
Dec 26 Javascript
JavaScript中的this机制
Jan 30 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
Jun 14 Javascript
微信小程序 LOL 英雄介绍开发实例
Sep 30 Javascript
AngularJS中watch监听用法分析
Nov 04 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
Feb 23 Javascript
使用JavaScript中的lodash编写双色球效果
Jun 24 Javascript
JS实现数组深拷贝的方法分析
Mar 06 Javascript
vue自定义指令directive的使用方法
Apr 07 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
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
基于javascript显示当前时间以及倒计时功能
2016/03/18 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
python实现数组插入新元素的方法
2015/05/22 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
python贪吃蛇游戏代码
2020/04/18 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
如何用Django处理gzip数据流
2021/01/29 Python
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
英国折扣零售连锁店:QD Stores
2018/12/08 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
工商技校毕业生自荐信
2013/11/15 职场文书
求职教师自荐书
2014/06/19 职场文书
2014年教育实习工作总结
2014/11/22 职场文书