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内置对象 学习笔记
Aug 01 Javascript
JS中操作JSON总结
Dec 06 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
Oct 23 Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 Javascript
jQuery实现简单的网页换肤效果示例
Sep 18 Javascript
JS实现简单的二元方程计算器功能示例
Jan 03 Javascript
vue2.x select2 指令封装详解
Oct 12 Javascript
Vue的土著指令和自定义指令实例详解
Feb 04 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
微信小程序绑定手机号获取验证码功能
Oct 22 Javascript
jquery向后台提交数组的代码分析
Feb 20 jQuery
JS typeof fn === 'function' && fn()详解
Aug 22 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 Framework教程之Bootstrap类用法概述
2016/03/14 PHP
关于php开启错误提示的总结
2019/09/24 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
jQuery select操作控制方法小结
2010/05/26 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
angular4自定义组件详解
2017/09/28 Javascript
js 开发之autocomplete="off"在chrom中失效的解决办法
2017/09/28 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
Python页面加载的等待方式总结
2021/02/28 Python
Python的collections模块真的很好用
2021/03/01 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
销售文员岗位职责
2013/11/29 职场文书
《小儿垂钓》教学反思
2014/02/23 职场文书
村党建工作汇报材料
2014/11/02 职场文书
2014年团队工作总结
2014/11/24 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
电影圆明园观后感
2015/06/03 职场文书