js 获取变量准确类型

前端1 min
#JavaScript
'use strict';

function getType(any) {
  if (any === null) return 'Null';
  if (any === undefined) return 'Undefined';
  return Object.prototype.toString.call(any).slice(8, -1);
}

console.log(getType(1)); // Number
console.log(getType(NaN)); // Number
console.log(getType(213n)); // BigInt
console.log(getType('str')); // String
console.log(getType({})); // Object
console.log(getType([ 1, 2, 3 ])); // Array
console.log(getType(Symbol())); // Symbol
console.log(getType(() => {})); // Function
console.log(getType(async () => {})); // AsyncFunction
console.log(getType(new Set())); // Set
console.log(getType(new Map())); // Map
console.log(getType(new WeakMap())); // WeakMap
console.log(getType(new RegExp())); // RegExp
console.log(getType(new Date())); // Date
console.log(getType(new Error())); // Error
console.log(getType(new URL('http://www.baidu.com'))); // URL