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 年月日联动实现核心代码
Dec 21 Javascript
Jquery实现三层遍历删除功能代码
Apr 23 Javascript
javascript异步编程的4种方法
Feb 19 Javascript
javascript自动切换焦点控制效果完整实例
Feb 02 Javascript
jquery与js实现全选功能的区别
Jun 11 jQuery
Vue.js实现数据响应的方法
Aug 13 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
Aug 14 Javascript
详解vue-cli中使用rem,vue自适应
May 06 Javascript
angular多语言配置详解
May 16 Javascript
解决layui 三级联动下拉框更新时回显的问题
Sep 03 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 Javascript
JS前端可视化canvas动画原理及其推导实现
Aug 05 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
广播爱好者需要了解的天线知识
2021/03/01 无线电
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
jquery ui resizable bug解决方法
2010/10/26 Javascript
js实时监听文本框状态的方法
2011/04/26 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
node.js中的console.warn方法使用说明
2014/12/09 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
python实现折半查找和归并排序算法
2017/04/14 Python
PyQt5下拉式复选框QComboCheckBox的实例
2019/06/25 Python
python函数超时自动退出的实操方法
2020/12/28 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
应届毕业生个人自荐信范文
2013/11/30 职场文书
学前班教师的自我鉴定
2013/12/05 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技