<!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中檢測數據類型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.