在打字稿中,这显示一个错误,说 isNaN 只接受数值
isNaN('9BX46B6A')
这返回 false 因为parseFloat('9BX46B6A')评估为9
parseFloat('9BX46B6A')
9
isNaN(parseFloat('9BX46B6A'))
我仍然可以在 Visual Studio 中显示错误的情况下运行,但我想以正确的方式进行。
目前,我已经编写了这个修改后的函数 -
static isNaNModified = (inputStr: string) => { var numericRepr = parseFloat(inputStr); return isNaN(numericRepr) || numericRepr.toString().length != inputStr.length; }
将字符串转换为数字的方法是 with Number,而不是parseFloat。
Number
parseFloat
Number('1234') // 1234 Number('9BX9') // NaN
如果您喜欢速记,也可以使用一元加号运算符:
+'1234' // 1234 +'9BX9' // NaN
检查 NaN 时要小心(操作符===和!==不按预期工作NaN)。采用:
===
!==
NaN
isNaN(+maybeNumber) // returns true if NaN, otherwise false