JSFiddle - React, Tailwind, and code Playground
by ChaseWest
JavaScript
function is(val, type){
switch(type){
case "finite":
return typeof val === "number" && Number.isFinite(val);
case "integer":
return typeof val === "number" && Number.isInteger(val);
case "NaN":
return typeof val === "number" && Number.isNaN(val);
case "positive":
return typeof val === "number" && val >= 0;
case "negative":
return typeof val === "number" && val < 0;
case "even":
return typeof val === "number" && val%2 === 0;
case "odd":
return typeof val === "number" && val%2 === 1;
case "null":
return typeof val === "object" && !val;
case "array":
return typeof val === "object" && Object.prototype.toString.call(val) === '[object Array]';
case "object":
return typeof val === "object" && !!val;
default:
return typeof val === type;
}
}
console.log(is(undefined, "undefined"));
console.log(is(3, "undefined"));
console.log(is(true, "boolean"));
console.log(is(3, "boolean"));
console.log(is(3, "number"));
console.log(is(null, "number"));
console.log(is(3, "finite"));
console.log(is(undefined, "finite"));
console.log(is(3, "integer"));
console.log(is(true, "integer"));
console.log(is(NaN, "NaN"));
console.log(is(3, "NaN"));
console.log(is(3, "odd"));
console.log(is(4, "odd"));
console.log(is(4, "even"));
console.log(is(3, "even"));
console.log(is("test", "string"));
console.log(is(3, "string"));
console.log(is(null, "null"));
console.log(is({}, "null"));
console.log(is([], "array"));
console.log(is(null, "array"));
console.log(is({}, "object"));
console.log(is(null, "object"));