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 keycode总结
Feb 04 Javascript
js导航菜单(自写)简单大方
Mar 28 Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
Jun 04 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
Apr 01 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
Oct 10 Javascript
vue拦截器Vue.http.interceptors.push使用详解
Apr 22 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
Nov 15 Javascript
解决Webpack 热部署检测不到文件变化的问题
Feb 22 Javascript
Vue波纹按钮组件制作
Apr 30 Javascript
node.js调用C++函数的方法示例
Sep 21 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 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 表单验证实现代码
2009/03/10 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
拖动时防止选中
2017/02/03 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
Python程序运行原理图文解析
2018/02/10 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
python访问hdfs的操作
2020/06/06 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
Linux如何为某个操作添加别名
2013/03/01 面试题
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
广告业务员岗位职责
2015/02/13 职场文书
索赔员岗位职责
2015/02/15 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
股东大会通知
2015/04/24 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle