获取类型
const getType = value => Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
判断类型
const isArray = value => getType(value) === 'array';
const isValidArr = value => isArray(value) && !!value.length;
const isObject = value => getType(value) === 'object';
const isValidObj = value => isObject(value) && !!Object.keys(value).length;
const isFunction = value => getType(value) === 'function';
const isError = value => getType(value) === 'error';
const isRegExp = value => getType(value) === 'regexp';
const isElement = value => getType(value).indexOf('element') > -1;
const isAsync = value => getType(value) === 'promise' || (isObject(value) && isFunction(value.then));
const isUrl = url => /^https?:\/\/[^\s/?.#]+\.[^\s]+/.test(url);
const isDate = (...val) => !Number.isNaN(new Date(...val).valueOf());
const isBase64Image = str => str.match(/^data:image\/([a-zA-Z0-9]+);base64,.+/i);
示例
getType(2);
getType('hi');
getType([]);
getType({a: 123});
isArray([]);
isValidArr([1]);
isObject({});
isValidObj({});
isFunction(() => {});
isError(new Error());
isRegExp(/\d+/);
isElement(<span>1</span>);
isAsync(new Promise((res, rej) => {}));
isUrl('http://abc.com');
isDate('2022', '10', '11');
isBase64Image('data:image/png;base64,test');

演示地址:ihuxy.com/play?utils=…