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


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

      

    1、路在何方? 路在脚下 2、何去何从? 每个人都在探索,未来的方向在何处。如果说某些方向是世人已经公认的,那么就先按照公认的去走吧(ps:站在巨人的肩膀上看世界会清晰)。 如果说方向,当今世人还不清晰准确。那么就大胆往前走吧,对与错并不重要。心中的方向更加重要。
  • 相关阅读:
    vue3 中的路由传参
    js还原底层简单的history路由
    js还原底层简单的hash路由
    使用proxy以及Reflect还原vue3中的shallowReadonly 与 readonly响应式的原理
    flex布局兼容浏览器处理
    使用proxy以及Reflect还原vue3中的shallowReactive与reactive响应式的原理
    TS学习笔记--其他(声明文件、内置对象)
    TS学习笔记--泛型
    TS学习笔记--函数
    springboot+mybatis-plus快速精简配置
  • 原文地址:https://www.cnblogs.com/yuanjili666/p/11613257.html
Copyright © 2020-2023  润新知