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 回车事件实现代码
Aug 23 Javascript
js获取时间(本周、本季度、本月..)
Nov 22 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
May 07 Javascript
javascript实现密码强度显示
Mar 18 Javascript
jQuery实现冻结表格行和列
Apr 29 Javascript
浅析Node.js的Stream模块中的Readable对象
Jul 29 Javascript
Jquery使用小技巧汇总
Dec 29 Javascript
vue-cli单页应用改成多页应用配置详解
Jul 14 Javascript
用vue封装插件并发布到npm的方法步骤
Oct 18 Javascript
浅谈react-router@4.0 使用方法和源码分析
Jun 04 Javascript
你或许不知道的一些npm实用技巧
Jul 04 Javascript
Vue数字输入框组件示例代码详解
Jan 15 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中http与https跨域共享session的解决方法
2014/12/20 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
childNodes.length与children.length的区别
2009/05/14 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
js图片预加载示例
2014/04/30 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
微信跳一跳游戏python脚本
2020/04/01 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
python对于requests的封装方法详解
2019/01/03 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
python二元表达式用法
2019/12/04 Python
Python列表如何更新值
2020/05/27 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
详细的大学生创业计划书模板
2014/01/27 职场文书
人力资源部经理岗位职责规定
2014/02/23 职场文书
仓库文员岗位职责
2014/04/06 职场文书
有关环保的标语
2014/06/13 职场文书
中药学自荐信
2014/06/15 职场文书
校车安全管理责任书
2015/05/11 职场文书
详解Vue slot插槽
2021/11/20 Vue.js