JS 判断变量的类型

判断变量的类型

用 typeof 判断是不够准确的

使用typeof能判断出四种,分别是number,string,boolean,object,剩余的均被检测为object
  • 用 Object.prototype.tostring() 就准确完美了 下面用call() 借调使用
        // 判断变量类型
        function checkType(val, testType) {
            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 res = Object.prototype.toString.call(val)
            if (!testType) {
                return typeObj[res]  //返回当前变量输入的类型
            } else {
                return typeObj[res] === testType   //返回布尔值 判断该数据类型是否为传入的类型
            }

        }
        console.log(checkType(123)); // number
        console.log(checkType([], 'array'));  //true
        console.log(checkType(window)); //window
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值