美文网首页
一个JS判断所有类型的方法

一个JS判断所有类型的方法

作者: 锋叔 | 来源:发表于2021-06-07 13:19 被阅读0次
    function isType(data, type) {
        const typeObj = {
            '[object String]': 'string',
            '[object Number]': 'number',
            '[object Boolean]': 'boolean',
            '[object Null]': 'null',
            '[object Undefined]': 'undefined',
            '[object Object]': 'object',
            '[object Array]': 'array',
            '[object Function]': 'function',
            '[object Date]': 'date', // Object.prototype.toString.call(new Date())
            '[object RegExp]': 'regExp',
            '[object Map]': 'map',
            '[object Set]': 'set',
            '[object HTMLDivElement]': 'dom', // document.querySelector('#app')
            '[object WeakMap]': 'weakMap',
            '[object Window]': 'window',  // Object.prototype.toString.call(window)
            '[object Error]': 'error', // new Error('1')
            '[object Arguments]': 'arguments',
        }
        let name = Object.prototype.toString.call(data) // 借用Object.prototype.toString()获取数据类型
        let typeName = typeObj[name] || '未知类型' // 匹配数据类型
        return typeName === type // 判断该数据类型是否为传入的类型
    }
    console.log(
        isType({}, 'object'), // true
        isType([], 'array'), // true
        isType(new Date(), 'object'), // false
        isType(new Date(), 'date'), // true
    )
    

    看call使用的时候,突然看到这么个实用性很高的方法,借用Object.prototype.toString获取数据类型。非常实用。

    相关文章

      网友评论

          本文标题:一个JS判断所有类型的方法

          本文链接:https://www.haomeiwen.com/subject/anjleltx.html