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
Name | Type |
---|---|
a | unknown |
b | unknown |
Returns
boolean
isArray
▸ isArray(v
): v is any
判断参数是否为Array对象的实例
Example
//trueconsole.log(_.isArray([]))//falseconsole.log(_.isArray(document.body.children))
Parameters
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
v | unknown |
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
Name | Type | Description |
---|---|---|
v | unknown | 字符串 |
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
Name | Type |
---|---|
v | unknown |
Returns
v is boolean
isDate
▸ isDate(v
): v is Date
判断值是不是一个Date实例
Example
//trueconsole.log(_.isDate(new Date()))//falseconsole.log(_.isDate('2020/1/1'))
Parameters
Name | Type |
---|---|
v | unknown |
Returns
v is Date
isDefined
▸ isDefined(v
): boolean
isUndefined()的反向验证函数,在需要验证是否变量存在的场景下非常有用
Example
//trueconsole.log(_.isDefined(null))//falseconsole.log(_.isDefined(undefined))
Parameters
Name | Type |
---|---|
v | unknown |
Returns
boolean
isElement
▸ isElement(v
): v is HTMLElement
判断值是不是DOM元素
Example
//trueconsole.log(_.isElement(document.body))//falseconsole.log(_.isElement(document))
Since
1.0.0
Parameters
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
a | unknown |
b | unknown |
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
Name | Type | Description |
---|---|---|
a | any | |
b | any | |
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
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
v | unknown |
Returns
boolean
isFunction
▸ isFunction(v
): v is Function
判断参数是否为函数对象
Example
//trueconsole.log(_.isFunction(new Function()))//trueconsole.log(_.isFunction(()=>{}))
Parameters
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
T | extends Record <UnknownMapKey , any > |
Parameters
Name | Type | Description |
---|---|---|
object | T | |
props | T | 对比属性对象,如果是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
Name | Type |
---|---|
T | extends Record <UnknownMapKey , any > |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
target | T | undefined | 如果不是对象类型,返回false |
props | T | undefined | 对比属性对象,如果是nil,返回true |
comparator? | Function | eq | 比较器,参数(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
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
v | unknown |
Returns
v is undefined | null
isNull
▸ isNull(v
): boolean
判断参数是否为null
Example
//trueconsole.log(_.isNull(null))//falseconsole.log(_.isNull(undefined))
Parameters
Name | Type |
---|---|
v | unknown |
Returns
boolean
isNumber
▸ isNumber(v
): v is number
判断参数是否为数字类型值
Example
//trueconsole.log(_.isNumber(1))//trueconsole.log(_.isNumber(Number.MAX_VALUE))//falseconsole.log(_.isNumber('1'))
Parameters
Name | Type |
---|---|
v | unknown |
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
Name | Type | Description |
---|---|---|
v | unknown | value |
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
Name | Type | Description |
---|---|---|
v | unknown | value |
Returns
boolean
是否朴素对象
isRegExp
▸ isRegExp(v
): v is RegExp
判断值是不是一个正则对象
Example
//trueconsole.log(_.isRegExp(new RegExp))//trueconsole.log(_.isRegExp(/1/))
Since
0.19.0
Parameters
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
v | unknown |
Returns
v is number
isSet
▸ isSet(v
): v is Set<any>
判断值是不是一个Set对象
Example
//falseconsole.log(_.isSet(new WeakSet))//trueconsole.log(_.isSet(new Set))
Parameters
Name | Type |
---|---|
v | unknown |
Returns
v is Set<any>
isString
▸ isString(v
): v is string
判断参数是否为字符串,包括String类的实例以及基本类型string的值
Example
//trueconsole.log(_.isString(new String('')))//trueconsole.log(_.isString(''))
Parameters
Name | Type |
---|---|
v | unknown |
Returns
v is string
isSymbol
▸ isSymbol(v
): v is symbol
判断值是不是Symbol
Example
//trueconsole.log(_.isSymbol(Symbol()))
Since
1.0.0
Parameters
Name | Type |
---|---|
v | unknown |
Returns
v is symbol
isUndefined
▸ isUndefined(v
): v is undefined
判断参数是否为undefined
Example
//trueconsole.log(_.isUndefined(undefined))//falseconsole.log(_.isUndefined(null))
Parameters
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
v | unknown |
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
Name | Type |
---|---|
v | unknown |
Returns
v is WeakSet<any>