javascript自定义一个全类型读取的函数

时间:2021-09-09 16:09:22

我爱撸码,撸码使我感到快乐!
大家好,我是Counter。
因为我们知道,在JavaScript中有自带的方法可以读取类型,但是不很全面,今天来分享下如何自己定义一个函数,将所有传入参数的类型给打印出来,比较简单,那这边也是老样子基本每行代码都有注释,那么直接上代码把:

// 自定义全类型读取
        function func(type) {
            // 如果是普通类型的就直接返回 (number, string, boolean)
            var typename = typeof(type);
            // typeof判断不全面,如果判断window下的对象只会返回object不会返回具体的数组类型的对象还是其他什么类型的对象,如果等于object对象的话
            if ( typename == "object") {
                // 那么我们可以用这个方法来知道具体对象的类型
                typename = Object.prototype.toString.call(type);
                // Object.prototype.toString.call()这个方法也是有局限性,它不能返回具体我们自己构造的函数
                if ( typename == "[object Object]") {
                    // 这个时候可以使用这个constructor.name将这个具体我们自己定义的构造函数,名字给提取出来
                    typename = "[object " + type.constructor.name + "]";
                }
                // 那这边我们希望具体输入null的时候,也给我们返回具体的null值
                if ( typename == "[object Null]") {
                    typename = null;
                }
            }
            return typename;
        }