JSFiddle - React, Tailwind, and code Playground
JavaScript
function whatIsType(variable) {
var type = Object.prototype.toString.call(variable);
switch(type) {
case '[object Function]':
return "Function";
break;
case '[object Date]':
return "Date";
break;
case '[object Error]':
return "Error";
break;
case '[object RegExp]':
return "RegExp";
break;
case '[object Array]':
return "Array";
break;
case '[object String]':
return "String";
break;
case '[object Number]':
return "Number";
break;
case '[object Boolean]':
return "Boolean";
break;
case '[object Null]':
return "Null";
break;
case '[object Undefined]':
return "Undefined";
break;
default:
if ('length' in variable && '0' in variable) {
return "Array-like"
}
return "Object";
break;
}
}
console.log(whatIsType()); //Undefind
console.log(whatIsType(true));
console.log(whatIsType(null));
console.log(whatIsType(1));
console.log(whatIsType("String"));
console.log(whatIsType(function() {}));
console.log(whatIsType([]));
//console.log(whatIsType(arguments)); //Array-like
console.log(whatIsType(new Object));
function SomeClass() { };
console.log(whatIsType(new SomeClass));
var arrayLike = { 0: 'a', 1: 'b', 2: 'c', length: 3 };
console.log(whatIsType(arrayLike));