// 判断一个数据类型的函数封装的方法,obj是用来接收传入的参数的 function gettype(obj) { var type = typeof obj; if (type !== ‘object‘) { return type; } //如果不是object类型的数据,直接用typeof就能判断出来 //如果是object类型数据,准确判断类型必须使用Object.prototype.toString.call(obj)的方式才能判断 return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/, ‘$1‘); //.replace(/^\[object (\S+)\]$/, ‘$1‘); 主要是把 第一个对象去掉 }
HTML文件实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>判断一个数据类型</title> </head> <body> <h1>判断一个数据类型 </h1> <h3>Object.prototype.toString.call(obj)</h3> <script> // 分别输入测试 var undf; var a = []; //数组 var b = "474"; //字符 var c = new Object(); //对象 var d = new Number(6) //数字 var e = NaN //非数字,但是是数据类型 var d=function(){}; var f=Symbol("key") ; var g=null; var i=undefined; // 判断一个数据类型的函数封装的方法,obj是用来接收传入的参数的 function gettype(obj) { var type = typeof obj; if (type !== ‘object‘) { return type; } //如果不是object类型的数据,直接用typeof就能判断出来 //如果是object类型数据,准确判断类型必须使用Object.prototype.toString.call(obj)的方式才能判断 return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/, ‘$1‘); //.replace(/^\[object (\S+)\]$/, ‘$1‘); 主要是把 第一个对象去掉 } console.log(gettype(a)); console.log(gettype(b)); console.log(gettype(c)); console.log(gettype(e)); console.log(gettype(d)); console.log(gettype(f)); console.log(gettype(g)); console.log(gettype(i)); // ///////////////////////////////////// function type(target) { var ret = typeof (target); var template = { //包装类、对象、数组 "[object Number]": "number - object", "[object String]": "string - object", "[object Boolean]": "boolean - object", "[object Object]": "object", "[object Array]": "array" } //找出 null if (target === null) { return null; } if (ret == "object") { var str = Object.prototype.toString.call(target); return template[str]; } else { //原始值 和 function return ret; } } console.log(11111111111111111111111111111111111111111) console.log(type(a)); console.log(type(b)); console.log(type(c)); console.log(type(e)); console.log(type(d)); console.log(type(f)); console.log(type(g)); console.log(type(i)); </script> </body> </html>
【原生】封装一个判断数据类型的函数的方法,准确判断一个数据的类型
原文:https://www.cnblogs.com/yuanjili666/p/11613257.html