1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- const toString = Object.prototype.toString
- const hasOwn = Object.prototype.hasOwnProperty
- export const isArray = (arr) => {
- return Array.isArray
- ? Array.isArray(arr)
- : toString.call(arr) === '[object Array]'
- }
- export const isArrayLike = (obj) =>
- obj != null && isLength(obj.length) && !isFunction(obj)
- export const isBoolean = (bool) => toString.call(bool) === '[object Boolean]'
- export const isDate = (date) => toString.call(date) === '[object Date]'
- export const isFunction = (fn) => toString.call(fn) === '[object Function]'
- export const isLength = (val) => {
- return (
- typeof val === 'number' &&
- val > -1 &&
- val % 1 === 0 &&
- val <= Number.MAX_SAFE_INTEGER
- )
- }
- export const isNull = (val) => val === null
- export const isUndefined = (val) => val === void 0
- export const isNumber = (val) => {
- return isNull(val) || isUndefined(val) || isNaN(val) ? false : true
- }
- export const isObject = (obj) => {
- let type = typeof obj
- return (obj && (type === 'object' || type === 'function')) || false
- }
- export const isObjectLike = (obj) => obj != null && typeof obj === 'object'
- export const isPlainObject = (obj) => {
- if (!isObject(obj) || obj.nodeType || obj === obj.window) {
- return false
- }
- try {
- if (
- obj.constructor &&
- !hasOwn.call(obj, 'constructor') &&
- !hasOwn.call(obj.constructor.prototype, 'isPrototypeOf')
- ) {
- return false
- }
- } catch (e) {
- return false
- }
- for (var key in obj) {
- //
- }
- return key === void 0 || hasOwn.call(obj, key)
- }
- export const isRegExp = (reg) => toString.call(reg) === '[object RegExp]'
- export const isString = (str) => toString.call(str) === '[object String]'
- /**
- * 检测一个对象是否是空对象
- * 1.对象为null
- * 2.数组是空数组
- * 3.字面量对象是空对象
- * @param {Null|Array|Object} value 检测对象
- * @return {Boolean} 返回是否是空对象
- */
- export const isEmpty = (value) => {
- if (value === null) {
- return true
- }
- if (isArray(value)) {
- return !value.length
- }
- if (isPlainObject(value)) {
- return !Object.keys(value).length
- }
- return false
- }
|