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图表动画插件Highcharts Examples
Apr 16 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
Apr 06 Javascript
javascript作用域问题实例分析
Jul 13 Javascript
jquery zTree异步加载简单实例讲解
Feb 25 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 Javascript
Bootstrap基本模板的使用和理解1
Dec 14 Javascript
使用Angular缓存父页面数据的方法
Jan 03 Javascript
vue 注册组件的使用详解
May 05 Javascript
解析vue data不可以使用箭头函数问题
Jul 03 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
Oct 29 Javascript
20个必会的JavaScript面试题(小结)
Jul 02 Javascript
JS异步宏队列微队列原理详解
Sep 09 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
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
Dom与浏览器兼容性说明
2010/10/25 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
值得收藏的vuejs安装教程
2017/11/21 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
网络方面基础面试题
2012/11/16 面试题
缓刑人员的思想汇报
2014/01/11 职场文书
给儿子的表扬信
2014/01/15 职场文书
物理力学求职信
2014/02/18 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
商务考察邀请函模板
2015/02/02 职场文书
Mybatis是这样防止sql注入的
2021/12/06 Java/Android
Python Pygame实战之塔防游戏的实现
2022/03/17 Python
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers