javascript 得到变量类型的函数


Posted in Javascript onMay 19, 2010

这个功能需要写一点代码来实现。下面的函数可以得到一个变量的类型,调用时传递一个变量进去,会返回用字符串形式描述的变量类型。

//得到x的类型,返回类型名称 
function getType(x) { 
//如果x为null,则返回null 
if (x == null) return "null"; 
var t = typeof x; 
//如果x为简单类型,则返回类型名称 
if (t.toLocaleLowerCase() != "object") return t; 
//调用object类的toString方法得到类型信息 
//object.toString方法返回类似这样的信息[object 类名] 
t = Object.prototype.toString.apply(x).toLowerCase(); 
//截取toString方法返回值的类名部分 
t = t.substring(8, t.length - 1); 
if (t.toLocaleLowerCase() != "object") return t; 
//检查x确实为object类型 
if (x.constructor == Object) return t; 
//从构造函数得到类型名称 
if (typeof x.constructor == "function") 
return getFunctionName(x.constructor); 
return "unknow type"; 
} 
//得到函数名称 
function getFunctionName(fn) { 
if (typeof fn != "function") throw "the argument must be a function."; 
var reg = /\W*function\s+([\w\$]+)\s*\(/; 
var name = reg.exec(fn); 
if (!name) { 
return '(Anonymous)'; 
} 
return name[1]; 
}
Javascript 相关文章推荐
JavaScript中this关键字使用方法详解
Mar 08 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
Sep 17 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
Aug 11 Javascript
Javascript中call和apply函数的比较和使用实例
Feb 03 Javascript
jquery实现的Accordion折叠面板效果代码
Sep 02 Javascript
微信小程序 配置文件详细介绍
Dec 14 Javascript
微信小程序实现图片轮播及文件上传
Apr 07 Javascript
详解Vue中一种简易路由传参办法
Sep 15 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 Javascript
node实现socket链接与GPRS进行通信的方法
May 20 Javascript
vue导航栏部分的动态渲染实例
Nov 01 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 Javascript
javascript 跨浏览器开发经验总结(五) js 事件
May 19 #Javascript
js 复制或插入Html的实现方法小结
May 19 #Javascript
15 个 JavaScript Web UI 库
May 19 #Javascript
JavaScript 以对象为索引的关联数组
May 19 #Javascript
JavaScript 语言的递归编程
May 18 #Javascript
JS 树形递归实例代码
May 18 #Javascript
document.getElementById方法在Firefox与IE中的区别
May 18 #Javascript
You might like
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
ThinkPHP3.1新特性之多层MVC的支持
2014/06/19 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
利用yarn实现一个webpack+react种子
2016/10/25 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
2018/01/03 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
CentOS7下python3.7.0安装教程
2018/07/30 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
python字符串下标与切片及使用方法
2020/02/13 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
工厂保洁员岗位职责
2013/12/04 职场文书
出国签证在职证明
2014/01/16 职场文书
幼师求职自荐信
2014/05/31 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
手机销售员岗位职责
2015/04/11 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书