'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