function getType(x) {
const originType = Object.prototype.toString.call(x);
const type = originType.slice(8, -1);
return type.toLowerCase();
}
console.info( getType(null) )
console.info( getType(undefined) )
console.info( getType(100) )
console.info( getType('abc') )
console.info( getType(true) )
console.info( getType(Symbol()) )
console.info( getType({}) )
console.info( getType([]) )
console.info( getType(() => {}) )
console.info( getType(new Date()) )
console.info( getType(new RegExp('')) )
console.info( getType(new Map()) )
console.info( getType(new Set()) )
console.info( getType(new WeakMap()) )
console.info( getType(new WeakSet()) )
console.info( getType(new Error()) )
console.info( getType(new Promise(() => {})) )