写一个函数用来判断 string、number、boolean、null 、undefined、 NaN 、array 、object

默认使用typeof来进行传入参数类型的判断,但是真实发现只能用来判断最基本的string和number。像引用类型就无法进行判断,直接定义为object。

仔细查看文档之后有个方法可以用 Object.prototype.toString.call来进行判断,但真实一用发现NaN也是算number的一类。

这时候我们就要做个大判断,将NaN先剔除在外。代码如下:

function checkType (type) {

    if (Number.isNaN(type)) {

        return 'NaN'

    }

    switch (Object.prototype.toString.call(type)) {

        case '[object String]': return 'string'

        case '[object Number]': return 'number'

        case '[object Boolean]': return 'boolean'

        case '[object Null]': return 'null'

        case '[object Undefined]': return 'undefined'

        case '[object Array]': return 'array'

        case '[object Object]': return 'object'

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容