javascript 得到变量类型的函数

这个功能需要写一点代码来实现。下面的函数可以得到一个变量的类型,调用时传递一个变量进去,会返回用字符串形式描述的变量类型。


代码如下:

//得到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];
}

(0)

相关推荐

  • Js检查变量类型的代码()

    JavaScript检查变量的类型,并判断是整形或是字符串或是其它类型等等. 检查变量的类型 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 2.toString 本来是用来做字符串转换的,不过现在流行用来做变量类型的检查了.舜子这里也写了一个函数,方便检查变量的类型,可以用来代替 typeof 复制代码 代码如下: function getType(o) { var _t; return ((_t = typeof(o)) == "object" ? o==null &a

  • JavaScript的变量作用域深入理解

    在学习JavaScript的变量作用域之前,我们应当明确几点: a.JavaScript的变量作用域是基于其特有的作用域链的. b.JavaScript没有块级作用域. c.函数中声明的变量在整个函数中都有定义. 1.JavaScript的作用域链 首先看下下面这段代码: 复制代码 代码如下: <script type="text/javascript" language="javascript"> var rain = 1; function rain

  • JavaScript变量类型以及变量作用域详解

    变量类型 ECMAScript变量可能包含两种不同类型的数据值:基本类型和引用类型. 基本类型 基本类型指的是简单的数据段,5种基本数据类型:undefined.null.boolean.number.string,基本数据类型是按值访问的,因此可以操作保存在变量中的实际的值. 复制变量值 从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上.例如: var num1 = 5; var num2 = num1; 复制前的变量对象 复制后的变量对

  • 关于javascript 回调函数中变量作用域的讨论

    1.背景 Javascript中的回调函数,相信大家都不陌生,最明显的例子是做Ajax请求时,提供的回调函数, 实际上DOM节点的事件处理方法(onclick,ondblclick等)也是回调函数. 在使用DWR的时候,回调函数可以作为第一个或者最后一个参数出现,如: JScript code function callBack(result){ } myDwrService.doSomething(param1,param2,callBack);//DWR的推荐方式 //或者 myDwrSer

  • JavaScript基于自定义函数判断变量类型的实现方法

    本文实例讲述了JavaScript基于自定义函数判断变量类型的实现方法.分享给大家供大家参考,具体如下: 通常用typeof来判断js变量的类型,但很多时候仅仅typeof满足不了要求的. 我写了一个自定义函数来做这个事,判断的比较全面了. function varType(v){ if ( typeof v=== "object" ){ if (v=== null ) return 'null' ; if (v. constructor ) return (v. constructo

  • js中判断变量类型函数typeof的用法总结

    1.作用: typeof 运算符返回一个用来表示表达式的数据类型的字符串. 可能的字符串有:"number"."string"."boolean"."object"."function" 和 "undefined". 2.常用返回值说明 表达式 返回值 typeof undefined 'undefined' typeof null 'object' typeof true 'boole

  • js判断undefined变量类型使用typeof

    js判断undefined变量类型直接用 复制代码 代码如下: if(mydata=='undefined'){ alert("未定义"); } 这是个很低级的错误,这么使: 复制代码 代码如下: if(typeof(mydata)=='undefined'){ alert("未定义"); }

  • js 变量类型转换常用函数与代码[比较全]

    1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 在判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串.parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字:如果不是,该方法将返回NaN,不再继续执行其他操作.但如果该字符是有效数字,该方法

  • 详细分析JavaScript变量类型

    变量类型  只有6种 : 四种原始数据类型boolean , number, string , undefine, 其他object,function是对象 typeof,instanceof   直接看实例: var obj = null; console.info(typeof obj); //Object var arr = []; console.info(arr instanceof Object); //true console.info(arr instanceof Array);

  • javascript中对变量类型的判断方法

    在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, Boolean, Number和String:复杂数据类型是Object,Object中还细分了很多具体的类型,比如:Array, Function, Date等等.今天我们就来探讨一下,使用什么方法判断一个出一个变量的类型. 在讲解各种方法之前,我们首先定义出几个测试变量,看看后面的方法究竟能把变量的类型解析成什么样子,以下几个变量差不多包含了我们在实际编码中常用的类型. var

随机推荐