js判断数据类型最准确的方法之一

function getType(data) {
  const type = Object.prototype.toString.call(data);
  let res = '';
  switch (type) {
    case '[object Object]':
      res = 'Object';
      break;
    case '[object Array]':
      res = 'Array';
      break;
    case '[object String]':
      res = 'String';
      break;
    case '[object Number]':
      res = 'Number';
      break;
    case '[object Undefined]':
      res = 'Undefined';
      break;
    case '[object Null]':
      res = 'Null';
      break;
    case '[object Function]':
      res = 'Function';
      break;
    case '[object Boolean]':
      res = 'Boolean';
      break;
    case '[object Symbol]':
      res = 'Symbol';
      break;
    case '[object BigInt]':
      res = 'BigInt';
      break;
    default:
      break;
  }
  return res;
}
console.log('getType({}): ', getType({}));
console.log('getType([]): ', getType([]));
console.log('getType("123"): ', getType('123'));
console.log('getType(123): ', getType(123));
console.log('getType(): ', getType());
console.log('getType(null): ', getType(null));
console.log('getType(()=>{}): ', getType(()=>{}));
console.log('getType(true): ', getType(true));
console.log('getType(Symbol()): ', getType(Symbol()));
console.log('getType(BigInt(123)): ', getType(BigInt(123)));

如果感觉switch  case写法有点长,可以改成这样写比较简洁:

function getType(data) {
  const type = Object.prototype.toString.call(data);
  const typeMap = {
    '[object Object]': 'Object',
    '[object Array]': 'Array',
    '[object String]': 'String',
    '[object Number]': 'Number',
    '[object Undefined]': 'Undefined',
    '[object Null]': 'Null',
    '[object Function]': 'Function',
    '[object Boolean]': 'Boolean',
    '[object Symbol]': 'Symbol',
    '[object BigInt]': 'BigInt'
  };
  return typeMap[type] ?? '';
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值