// 判断一个数据类型的函数封装的方法,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