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 相关文章推荐
JS前端框架关于重构的失败经验分享
Mar 17 Javascript
Jquery实现页面加载时弹出对话框代码
Apr 19 Javascript
jquery()函数的三种语法介绍
Oct 09 Javascript
Javascript基础 函数“重载” 详细介绍
Oct 25 Javascript
JS下载文件|无刷新下载文件示例代码
Apr 17 Javascript
实现placeholder效果的方案汇总
Jun 11 Javascript
node中koa中间件机制详解
Aug 22 Javascript
JS库之ParticlesJS使用简介
Sep 12 Javascript
可能被忽略的一些JavaScript数组方法细节
Feb 28 Javascript
详解babel升级到7.X采坑总结
May 12 Javascript
Vue data的数据响应式到底是如何实现的
Feb 11 Javascript
JS获取当前时间戳方法解析
Aug 29 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脚本的10个技巧(8)
2006/10/09 PHP
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
用PHP实现 上一篇、下一篇的代码
2012/09/29 PHP
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
jquery tab插件精简版分享
2011/09/10 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
Vue.js的复用组件开发流程完整记录
2018/11/29 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
深入解析Python编程中JSON模块的使用
2015/10/15 Python
python动态网页批量爬取
2016/02/14 Python
python使用epoll实现服务端的方法
2018/10/16 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
python绘制简单彩虹图
2018/11/19 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
Python上下文管理器全实例详解
2019/11/12 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
上班早退检讨书
2014/01/09 职场文书
30年同学聚会感言
2014/01/30 职场文书
自我评价的范文
2014/02/02 职场文书
体育比赛口号
2014/06/09 职场文书
欢迎标语大全
2014/06/21 职场文书
离婚财产处理协议书
2014/09/30 职场文书
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS