/** * 获取变量类型 * @param target {any} * @returns {string} * * @example * getRawType('') // 'string' * getRawType({}) // 'object' * getRawType(new Map()) // 'map' * getRawType(new Set()) // 'set' * getRawType(new WeakSet()) // 'weakset' * getRawType(new WeakMap()) // 'weakmap' * getRawType([]) // 'array' * getRawType(1) // 'number' * getRawType(0) // 'number' * getRawType(NaN) // 'number' * getRawType(CSSMathMax) // 'function' * getRawType(function () { }) // 'function' * getRawType(Function) // 'function' * getRawType(Date) // 'function' * getRawType(true) // 'boolean' * getRawType(``) // 'string' * getRawType(`23`) // 'string' * getRawType(Symbol('')) // 'symbol' * getRawType(null) // 'null' * getRawType(undefined) // 'undefined' */ function getRawType(target) { return Object.prototype.toString.call(target).slice(8, -1).toLocaleLowerCase(); }