Skip to content

Instantly share code, notes, and snippets.

@qzm
Created August 6, 2017 07:03
Show Gist options
  • Save qzm/df682718ca961a612ed05f127ef4b940 to your computer and use it in GitHub Desktop.
Save qzm/df682718ca961a612ed05f127ef4b940 to your computer and use it in GitHub Desktop.
gettype
/**
* 格式工厂,生成判断的函数
* @param {String} type
* @return {Function} 判断函数
*/
function typeFactory(type) {
return (obj) => {
return Object.prototype.toString.call(obj) === `[object ${type}]`;
}
}
/**
* 判断数据是否为Array
* @param {*} obj
* @return {Boolean} 是否为Array
*/
const isArray = typeFactory('Array');
/**
* 判断数据是否为Object
* @param {*} obj
* @return {Boolean} 是否为Object
*/
const isObject = typeFactory('Object');
/**
* 判断数据是否为Function
* @param {*} obj
* @return {Boolean} 是否为Function
*/
const isFunction = typeFactory('Function');
/**
* 判断数据是否为Number
* @param {*} obj
* @return {Boolean} 是否为Number
*/
const isNumber = typeFactory('Number');
/**
* 判断数据是否为RegExp
* @param {*} obj
* @return {Boolean} 是否为RegExp
*/
const isRegExp = typeFactory('RegExp');
/**
* 判断数据是否为String
* @param {*} obj
* @return {Boolean} 是否为String
*/
const isString = typeFactory('String');
/**
* 判断数据是否为Boolean
* @param {*} obj
* @return {Boolean} 是否为Boolean
*/
const isBoolean = typeFactory('Boolean');
/**
* 判断数据是否为Undefined
* @param {*} obj
* @return {Boolean} 是否为Undefined
*/
const isUndefined = typeFactory('Undefined');
/**
* 判断数据是否为Null
* @param {*} obj
* @return {Boolean} 是否为Null
*/
/**
* 判断数据是否为Symbol
* @param {*} obj
* @return {Boolean} 是否为Symbol
*/
const isSymbol = typeFactory('Symbol');
/**
* 判断数据是否为Map
* @param {*} obj
* @return {Boolean} 是否为Map
*/
const isMap = typeFactory('Map');
/**
* 判断数据是否为Set
* @param {*} obj
* @return {Boolean} 是否为Set
*/
const isSet = typeFactory('Set');
/**
* 判断数据是否为WeakMap
* @param {*} obj
* @return {Boolean} 是否为WeakMap
*/
const isWeakMap = typeFactory('WeakMap');
/**
* 判断数据是否为WeakSet
* @param {*} obj
* @return {Boolean} 是否为WeakSet
*/
const isWeakSet = typeFactory('WeakSet');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment