首页 > 其他 > 详细

【原生】封装一个判断数据类型的函数的方法,准确判断一个数据的类型

时间:2019-09-30 17:16:14      阅读:93      评论:0      收藏:0      [点我收藏+]

 

 

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!