<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script> </head> <body> <script> var num=12; var str = "aaa"; var ary = [1,3,4]; var object={"name":"小明"}; var regExp=/\d/; var fn = function(){}; //alert($.type(ary));//array jQ的写法 //检测数据类型的方式 console.log(Object.prototype.toString.call(fn));//[object Array] console.log(isArray(ary)); //拿到返回值 true console.log(isString(str)); //拿到返回值 console.log(isObject(object)); //拿到返回值 console.log(isRegExp(regExp)); //拿到返回值 console.log(isNum(num)); //拿到返回值 //检测数据类型的函数单独的写法 function isArray(obj){ return Object.prototype.toString.call(obj) == "[object Array]"; } function isString(obj){ return Object.prototype.toString.call(obj) == "[object String]"; } function isObject(obj){ return Object.prototype.toString.call(obj) == "[object Object]"; } function isRegExp(obj){ return Object.prototype.toString.call(obj) == "[object RegExp]" } function isNum(obj){ return Object.prototype.toString.call(obj) == "[object Number]" } //由于上面的函数代码重复较多,采用封装函数(代码重复利用) 根据传入的值的不同,返回不同的类型 function testType(obj){//采用多重判断 switch var _temptype=Object.prototype.toString.call(obj); switch(_temptype){ case "[object Array]": return "array";//如果是数组类型 返回类型arry break; case "[object String]": return "string"; break; case "[object Object]": return "object"; break; case "[object RegExp]": return "regexp"; break; case "[object Number]": return "number"; break; case "[object Function]": return "function"; break; default ://找不到的时候返回“未定义” return "undefined"; } } console.log("新方法的检测到的类型是:"+testType(fn)) </script> </body> </html>
js中检测数据类型
最新推荐文章于 2022-05-30 14:17:15 发布