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 相关文章推荐
捕获关闭窗口的脚本
Jan 10 Javascript
web前端开发JQuery常用实例代码片段(50个)
Aug 28 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
Jan 21 Javascript
jQuery的层级查找方式分析
Jun 16 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
微信小程序 WebSocket详解及应用
Jan 21 Javascript
js实现tab切换效果
Feb 16 Javascript
Vue2.0 从零开始_环境搭建操作步骤
Jun 14 Javascript
ES6中Array.find()和findIndex()函数的用法详解
Sep 16 Javascript
在nginx上部署vue项目(history模式)的方法
Dec 28 Javascript
vue-router之实现导航切换过渡动画效果
Oct 31 Javascript
JS实现字体背景跑马灯
Jan 06 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面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
Apache中php.ini的设置方法
2013/02/28 PHP
php获取字段名示例分享
2014/03/03 PHP
php中filter_input函数用法分析
2014/11/15 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
微信小程序实现购物车功能
2020/11/18 Javascript
Python实现句子翻译功能
2017/11/14 Python
numpy返回array中元素的index方法
2018/06/27 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
幼儿园教师培训制度
2014/01/16 职场文书
优秀食品类广告词
2014/03/19 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
职工宿舍管理制度
2015/08/05 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
MySQL 分组查询的优化方法
2021/05/12 MySQL
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
php访问对象中的成员的实例方法
2021/11/17 PHP
详解Python flask的前后端交互
2022/03/31 Python
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技
SQL Server携程核心系统无感迁移到MySQL实战
2022/06/01 SQL Server