如何判断一个有效数字
经常看到有小伙伴会封装一个 isNumber 来判断这个数字是否有效数字,如下
function isNumber(value?: unknown): value is number {
if (typeof value === 'number' && !Number.isNaN(value)) {
return true
}
return false
}
上面的判断过滤了 NaN 值,但其实判断会有个语义上的错误,因为从语义上来讲 NaN 也属于数字,进而会造成使用上的困惑
如果需要判断这个数字是否上有效数字,可以使用原生自带的 Number.isFinite,如下
Number.isFinite(999) // true
Number.isFinite(999.99) // true
Number.isFinite(NaN) // false
Number.isFinite(Infinity) // false
© liaoliao666.