【问题标题】:How to check if value is NaN in Typescript? [duplicate]如何检查Typescript中的值是否为NaN? [复制]
【发布时间】:2017-07-28 00:47:22
【问题描述】:

在 TypeScript 中,我们如何检查某个值是否为 NaN

以下不起作用:

someObject.someValue == NaN
someObject.someValue === NaN

【问题讨论】:

    标签: typescript


    【解决方案1】:

    与 JavaScript 相同,isNaN

    if (isNaN(someObject.someValue)) ...
    

    或者更现代的Number.isNaN

    if (Number.isNaN(someObject.someValue)) ...
    

    【讨论】:

    • 任何不是NaN 的东西都会返回false。字符串、nullundefined、布尔值 - 它们都会从 Number.isNaN() 或普通的 isNaN() 返回 false。该函数不会测试某个东西是否“不是数字”,而是测试它是否“是 NaN”,这是一个特定的无效数字值,在实践中。要测试某物是否不是数字,请执行typeof something !== "number" || isNaN(something)
    • 如果其他人遇到这个问题,window.isNaN() 会将一个值强制转换为一个数字,然后检查它是否是 NaN。所以undefined"hello" 将返回true,而undefined"" 返回false。这就是添加 Number.isNaN 的原因,因为它确实会在没有初始强制的情况下明确检查 NaN
    • 请记住:"123.123" 将返回 false,但 "123,123" 将返回 true。
    • @zeh 根据 Typescript (es5+),isNaN() 仅将 number 类型作为其第一个参数。
    猜你喜欢
    • 2013-08-22
    • 2018-07-21
    • 2015-06-14
    • 2013-05-29
    • 2014-11-09
    • 2018-02-03
    • 1970-01-01
    • 2019-10-20
    相关资源
    最近更新 更多