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 判断客户端浏览器类型代码
Mar 01 Javascript
jquery选择器之属性过滤选择器详解
Jan 27 Javascript
jquery中 $.expr使用实例介绍
Jun 09 Javascript
jQuery实现判断滚动条到底部
Jun 23 Javascript
JS实现网页Div层Clone拖拽效果
Sep 26 Javascript
AngularJS实现单一页面内设置跳转路由的方法
Jun 28 Javascript
将jquery.qqFace.js表情转换成微信的字符码
Dec 01 jQuery
用vue写一个仿简书的轮播图的示例代码
Mar 13 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
使用js实现一个简单的滚动条过程解析
Sep 10 Javascript
vue根据条件不同显示不同按钮的操作
Aug 04 Javascript
详解JavaScript中的链式调用
Nov 27 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
详解python3中的真值测试
2018/08/13 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
Python之指数与E记法的区别详解
2019/11/21 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
大一军训感言
2014/01/09 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
世界读书日的活动方案
2014/08/20 职场文书
医院营销工作计划
2015/01/16 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
教你怎么用Python生成九宫格照片
2021/05/20 Python
React列表栏及购物车组件使用详解
2021/06/28 Javascript