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 相关文章推荐
alixixi runcode.asp的代码不错的应用
Aug 08 Javascript
IE6 fixed的完美解决方案
Mar 31 Javascript
javascript中xml操作实现代码
Nov 21 Javascript
仿微博字符限制效果实现代码
Apr 20 Javascript
JQuery的read函数与js的onload不同方式实现
Mar 18 Javascript
客户端js性能优化小技巧整理
Nov 05 Javascript
使用JSLint提高JS代码质量方法分享
Dec 16 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
Jan 27 Javascript
微信小程序 location API实例详解
Oct 02 Javascript
vue 里面使用axios 和封装的示例代码
Sep 01 Javascript
JS使用tofixed与round处理数据四舍五入的区别
Oct 25 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
Feb 03 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生成局部唯一识别码LUID的代码
2012/10/06 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
关于图片验证码设计的思考
2007/01/29 Javascript
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
js实现简单五子棋游戏
2020/05/28 Javascript
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
Python引用计数操作示例
2018/08/23 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
创业资金计划书
2014/02/06 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
说明书格式及范文
2014/05/07 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技
vue 给数组添加新对象并赋值
2022/04/20 Vue.js
Apache自带的ab压力测试工具的实现
2022/07/23 Servers