Module: is

验证类函数

Functions

eq

eq(a, b): boolean

判断两个值是否相等。使用SameValueZero 算法进行值比较。

Example

//trueconsole.log(_.eq(NaN,NaN))//falseconsole.log(_.eq(1,'1'))

Since

1.0.0

Parameters

NameType
aunknown
bunknown

Returns

boolean


isArray

isArray(v): v is any

判断参数是否为Array对象的实例

Example

//trueconsole.log(_.isArray([]))//falseconsole.log(_.isArray(document.body.children))

Parameters

NameType
vunknown

Returns

v is any


isArrayLike

isArrayLike(v): v is ArrayLike<unknown>

判断参数是否为类数组对象

Example

//trueconsole.log(_.isArrayLike('abc123'))//trueconsole.log(_.isArrayLike([]))//trueconsole.log(_.isArrayLike(document.body.children))

Parameters

NameType
vunknown

Returns

v is ArrayLike<unknown>


isBlank

isBlank(v): boolean

对字符串进行trim后进行验证。如果非字符串,逻辑同isEmpty()

Example

//trueconsole.log(_.isBlank('  '))//trueconsole.log(_.isBlank(null))//trueconsole.log(_.isBlank({}))//falseconsole.log(_.isBlank('     1'))

Since

0.16.0

Parameters

NameTypeDescription
vunknown字符串

Returns

boolean

如果字符串是null或trim后长度为0,返回true


isBoolean

isBoolean(v): v is boolean

判断值是不是一个布尔值

Example

//trueconsole.log(_.isBoolean(false))//falseconsole.log(_.isBoolean('true'))//falseconsole.log(_.isBoolean(1))

Parameters

NameType
vunknown

Returns

v is boolean


isDate

isDate(v): v is Date

判断值是不是一个Date实例

Example

//trueconsole.log(_.isDate(new Date()))//falseconsole.log(_.isDate('2020/1/1'))

Parameters

NameType
vunknown

Returns

v is Date


isDefined

isDefined(v): boolean

isUndefined()的反向验证函数,在需要验证是否变量存在的场景下非常有用

Example

//trueconsole.log(_.isDefined(null))//falseconsole.log(_.isDefined(undefined))

Parameters

NameType
vunknown

Returns

boolean


isElement

isElement(v): v is HTMLElement

判断值是不是DOM元素

Example

//trueconsole.log(_.isElement(document.body))//falseconsole.log(_.isElement(document))

Since

1.0.0

Parameters

NameType
vunknown

Returns

v is HTMLElement


isEmpty

isEmpty(v): boolean

判断参数是否为空,包括null/undefined/空字符串/0/[]/{}都表示空

注意:相比isBlank,isEmpty只判断字符串长度是否为0

Example

//trueconsole.log(_.isEmpty(null))//trueconsole.log(_.isEmpty([]))//falseconsole.log(_.isEmpty({x:1}))

Parameters

NameType
vunknown

Returns

boolean


isEqual

isEqual(a, b): boolean

判断两个值是否相等,对于非基本类型会进行深度比较,可以比较日期/正则/数组/对象等

Example

//falseconsole.log(_.isEqual(1,'1'))//true,falselet o = {a:1,b:[2,{c:['3','x']}]}let oo = {a:1,b:[2,{c:['3','x']}]}console.log(_.isEqual(o,oo),o == oo)//trueconsole.log(_.isEqual([new Date('2010-2-1'),/12/],[new Date(1264953600000),new RegExp('12')]))//falseconsole.log(_.isEqual([new Date('2010-2-1'),'abcd'],['2010/2/1','Abcd']))

Since

1.0.0

Parameters

NameType
aunknown
bunknown

Returns

boolean


isEqualWith

isEqualWith(a, b, comparator?): boolean

isEqual,但支持自定义比较器

Example

//trueconsole.log(_.isEqualWith([new Date('2010-2-1'),'abcd'],['2010/2/1','Abcd'],(av,bv)=>_.isDate(av)?av.toLocaleDateString() == bv:_.test(av,bv,'i')))

Since

1.0.0

Parameters

NameTypeDescription
aany
bany
comparator?Function比较器,参数(v1,v2),返回true表示匹配。如果返回undefined使用对应内置比较器处理

Returns

boolean


isError

isError(v): v is Error

判断值是不是异常对象

Example

//trueconsole.log(_.isError(new TypeError))//falseconsole.log(_.isError(Error))//truetry{a=b}catch(e){console.log(_.isError(e))}

Since

1.0.0

Parameters

NameType
vunknown

Returns

v is Error


isFinite

isFinite(v): boolean

判断值是不是有限数字

Example

//falseconsole.log(_.isFinite('0'))//trueconsole.log(_.isFinite(0))//trueconsole.log(_.isFinite(Number.MAX_VALUE))//trueconsole.log(_.isFinite(99999999999999999999999999999999999999999999999999999999999999999999999))//falseconsole.log(_.isFinite(Infinity))

Since

1.0.0

Parameters

NameType
vunknown

Returns

boolean


isFunction

isFunction(v): v is Function

判断参数是否为函数对象

Example

//trueconsole.log(_.isFunction(new Function()))//trueconsole.log(_.isFunction(()=>{}))

Parameters

NameType
vunknown

Returns

v is Function


isInteger

isInteger(v): v is number

判断值是不是一个整数

Example

//trueconsole.log(_.isInteger(-0))//trueconsole.log(_.isInteger(5.0))//falseconsole.log(_.isSafeInteger(5.000000000000001))//trueconsole.log(_.isSafeInteger(5.0000000000000001))//falseconsole.log(_.isInteger('5'))//trueconsole.log(_.isInteger(Number.MAX_SAFE_INTEGER))//trueconsole.log(_.isInteger(Number.MAX_VALUE))

Parameters

NameType
vunknown

Returns

v is number


isMap

isMap(v): v is Map<any, any>

判断值是不是一个Map对象

Example

//trueconsole.log(_.isMap(new Map()))//falseconsole.log(_.isMap(new WeakMap()))

Parameters

NameType
vunknown

Returns

v is Map<any, any>


isMatch

isMatch<T>(object, props): boolean

检测props对象中的所有属性是否在object中存在,可用于对象的深度对比。 使用eq作为值对比逻辑

Example

let target = {a:{x:1,y:2},b:1}//trueconsole.log(_.isMatch(target,{b:1}))//trueconsole.log(_.isMatch(target,{a:{x:1}}))target = [{x:1,y:2},{b:1}]//trueconsole.log(_.isMatch(target,{1:{b:1}}))//trueconsole.log(_.isMatch(target,[{x:1}]))

Since

0.17.0

Type parameters

NameType
Textends Record<UnknownMapKey, any>

Parameters

NameTypeDescription
objectT
propsT对比属性对象,如果是null,返回true

Returns

boolean

匹配所有props返回true


isMatchWith

isMatchWith<T>(target, props, comparator?): boolean

检测props对象中的所有属性是否在object中存在并使用自定义比较器对属性值进行对比。可以用于对象的深度对比。 当comparator参数是默认值时,与isMath函数相同

Example

let target = {a:{x:1,y:2},b:1}//trueconsole.log(_.isMatchWith(target,{b:1}))//falseconsole.log(_.isMatchWith(target,{b:'1'}))target = {a:null,b:0}//trueconsole.log(_.isMatchWith(target,{a:'',b:'0'},(a,b)=>_.isEmpty(a) && _.isEmpty(b)?true:a==b))

Since

0.18.1

Type parameters

NameType
Textends Record<UnknownMapKey, any>

Parameters

NameTypeDefault valueDescription
targetTundefined如果不是对象类型,返回false
propsTundefined对比属性对象,如果是nil,返回true
comparator?Functioneq比较器,参数(objectk,propsk,k,object,props),返回true表示匹配

Returns

boolean

匹配所有props返回true


isNaN

isNaN(v): boolean

判断值是否NaN本身。与全局isNaN函数相比,只有NaN值本身才会返回true

isNaN(undefined) => true
_.isNaN(undefined) => false

Example

//trueconsole.log(_.isNaN(NaN))//falseconsole.log(_.isNaN(null))//falseconsole.log(_.isNaN(undefined))

Parameters

NameType
vunknown

Returns

boolean


isNil

isNil(v): v is undefined | null

判断值是否为null或undefined

Example

//trueconsole.log(_.isNil(undefined))//falseconsole.log(_.isNil(0))//trueconsole.log(_.isNil(null))//falseconsole.log(_.isNil(NaN))

Since

1.2.3

Parameters

NameType
vunknown

Returns

v is undefined | null


isNull

isNull(v): boolean

判断参数是否为null

Example

//trueconsole.log(_.isNull(null))//falseconsole.log(_.isNull(undefined))

Parameters

NameType
vunknown

Returns

boolean


isNumber

isNumber(v): v is number

判断参数是否为数字类型值

Example

//trueconsole.log(_.isNumber(1))//trueconsole.log(_.isNumber(Number.MAX_VALUE))//falseconsole.log(_.isNumber('1'))

Parameters

NameType
vunknown

Returns

v is number


isObject

isObject(v): v is Record<UnknownMapKey, any>

判断值是不是一个非基本类型外的值,如果true则认为值是一个对象 同样,该方法还可以用来判断一个值是不是基本类型

Example

//falseconsole.log(_.isObject(1))//trueconsole.log(_.isObject(new String()))//falseconsole.log(_.isObject(true))//falseconsole.log(_.isObject(null))

Parameters

NameTypeDescription
vunknownvalue

Returns

v is Record<UnknownMapKey, any>

是否对象。如果值是null返回false,即使typeof null === 'object'


isPlainObject

isPlainObject(v): boolean

判断值是不是一个朴素对象,即通过Object创建的对象

Example

//falseconsole.log(_.isPlainObject(1))//falseconsole.log(_.isPlainObject(new String()))//trueconsole.log(_.isPlainObject({}))//falseconsole.log(_.isPlainObject(null))//trueconsole.log(_.isPlainObject(new Object))function Obj(){}//falseconsole.log(_.isPlainObject(new Obj))

Since

0.19.0

Parameters

NameTypeDescription
vunknownvalue

Returns

boolean

是否朴素对象


isRegExp

isRegExp(v): v is RegExp

判断值是不是一个正则对象

Example

//trueconsole.log(_.isRegExp(new RegExp))//trueconsole.log(_.isRegExp(/1/))

Since

0.19.0

Parameters

NameType
vunknown

Returns

v is RegExp


isSafeInteger

isSafeInteger(v): v is number

判断值是不是一个安全整数

Example

//trueconsole.log(_.isSafeInteger(-0))//trueconsole.log(_.isSafeInteger(5.0))//falseconsole.log(_.isSafeInteger(5.000000000000001))//trueconsole.log(_.isSafeInteger(5.0000000000000001))//falseconsole.log(_.isSafeInteger('5'))//trueconsole.log(_.isSafeInteger(Number.MAX_SAFE_INTEGER))//falseconsole.log(_.isSafeInteger(Number.MAX_VALUE))

Parameters

NameType
vunknown

Returns

v is number


isSet

isSet(v): v is Set<any>

判断值是不是一个Set对象

Example

//falseconsole.log(_.isSet(new WeakSet))//trueconsole.log(_.isSet(new Set))

Parameters

NameType
vunknown

Returns

v is Set<any>


isString

isString(v): v is string

判断参数是否为字符串,包括String类的实例以及基本类型string的值

Example

//trueconsole.log(_.isString(new String('')))//trueconsole.log(_.isString(''))

Parameters

NameType
vunknown

Returns

v is string


isSymbol

isSymbol(v): v is symbol

判断值是不是Symbol

Example

//trueconsole.log(_.isSymbol(Symbol()))

Since

1.0.0

Parameters

NameType
vunknown

Returns

v is symbol


isUndefined

isUndefined(v): v is undefined

判断参数是否为undefined

Example

//trueconsole.log(_.isUndefined(undefined))//falseconsole.log(_.isUndefined(null))

Parameters

NameType
vunknown

Returns

v is undefined


isWeakMap

isWeakMap(v): v is WeakMap<any, any>

判断值是不是一个WeakMap对象

Example

//trueconsole.log(_.isWeakMap(new WeakMap))//falseconsole.log(_.isWeakMap(new Map))

Parameters

NameType
vunknown

Returns

v is WeakMap<any, any>


isWeakSet

isWeakSet(v): v is WeakSet<any>

判断值是不是一个WeakSet对象

Example

//trueconsole.log(_.isWeakSet(new WeakSet))//falseconsole.log(_.isWeakSet(new Set))

Parameters

NameType
vunknown

Returns

v is WeakSet<any>