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 相关文章推荐
JQuery toggle使用分析
Nov 16 Javascript
jQuery Autocomplete自动完成插件
Jul 17 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
Javascript面向对象扩展库代码分享
Mar 27 Javascript
node.js中的fs.realpath方法使用说明
Dec 16 Javascript
JavaScript数组去重的3种方法和代码实例
Jul 01 Javascript
jQuery实现的左右移动焦点图效果
Jan 14 Javascript
jquery实现图片列表鼠标移入微动
Dec 01 Javascript
AngularJS封装$http.post()实例详解
May 06 Javascript
详解基于vue-cli配置移动端自适应
Jan 13 Javascript
vue中@change兼容问题详解
Oct 25 Javascript
JS document内容及样式操作完整示例
Jan 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
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
php实现微信公众号无限群发
2015/10/11 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
了解一点js的Eval函数
2012/07/26 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
python通过Windows下远程控制Linux系统
2018/06/20 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
python不同系统中打开方法
2020/06/23 Python
Python字典实现伪切片功能
2020/10/28 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
安全生产月宣传标语
2014/10/06 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
行政经理岗位职责
2015/04/15 职场文书
个人收入证明范本
2015/06/12 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
Java数组详细介绍及相关工具类
2022/04/14 Java/Android