【问题标题】:(Number(value) !== NaN) always true [duplicate](数字(值)!== NaN)始终为真[重复]
【发布时间】:2019-02-27 00:37:20
【问题描述】:

我第一次使用打字稿,遇到了一个很奇怪的问题。

我正在尝试像计算器一样进行计算,所以当用户按下按钮时,它可能是数字、2 3 4 ... 或运算 * \ + ...

在按钮按下时,我调用一个函数,该函数检查它是数字还是操作以调用适当的函数。

我这样比较我的字符串:

if (Number(value) !== NaN) {
  // it is a number
} else {
  // it is an operation
}

虽然这在控制台中工作(我的意思是当我按下一个数字时我确实有一个数字(3,4,5),当我按下一个操作时我有一个 NaN)这条线总是返回 true,所以我总是考虑它一个数字。

我在这里做错了什么?

谢谢

【问题讨论】:

标签: javascript typescript types numbers


【解决方案1】:

要检查值是否为 NaN,您应该使用 isNaN 函数。

if(isNaN(value)) {
  //do this if NaN
} else {
  //do this if not
}

顺便说一句:关于 SO 很多类似的问题 ;) 例如:How do you test for NaN in JavaScript?

【讨论】:

  • 认为打字稿会有不同的功能
  • "顺便说一句:关于很多类似的问题" - 那么请标记为重复关闭。
【解决方案2】:

使用isNaN(value)。如果value 是一个数字,则返回 true,否则返回 False。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-14
    • 2013-11-16
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    相关资源
    最近更新 更多