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 相关文章推荐
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
Oct 17 Javascript
javascript编程起步(第二课)
Feb 27 Javascript
JavaScript 自动完成脚本整理(33个)
Oct 20 Javascript
原生javascript图片自动或手动切换示例附演示源码
Sep 04 Javascript
jquery淡入淡出效果简单实例
Jan 14 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 Javascript
js获取时间函数及扩展函数的方法
Oct 30 Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 Javascript
Postman的下载及安装教程详解
Oct 16 Javascript
JavaScript惰性载入函数实例分析
Mar 27 Javascript
详解如何使用router-link对象方式传递参数?
May 02 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
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
destoon数据库表说明汇总
2014/07/15 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
php json相关函数用法示例
2017/03/28 PHP
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
django js实现部分页面刷新的示例代码
2018/05/28 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python画环形图的方法
2020/03/25 Python
django正续或者倒序查库实例
2020/05/19 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
python+requests接口自动化框架的实现
2020/08/31 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
Internet主要有哪些网络群组成
2015/12/24 面试题
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
学生检讨书如何写
2014/10/30 职场文书
入党群众意见范文
2015/06/02 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python