(数字(值)!== NaN)始终为真[重复]

Posted

技术标签:

【中文标题】(数字(值)!== NaN)始终为真[重复]【英文标题】:(Number(value) !== NaN) always true [duplicate] 【发布时间】: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,所以我总是考虑它一个数字。

我在这里做错了什么?

谢谢

【问题讨论】:

见:***.com/questions/34261938/… NaN === NaNfalse 【参考方案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。

【讨论】:

以上是关于(数字(值)!== NaN)始终为真[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python:替换数组中的 NaN 或 MEAN 而不是 -999 值[重复]

parseInt() 检查 NaN 工作不正常 [重复]

检查NaN数[重复]

缺少基于非数字(NaN)的概念[重复]

在javascript中获取NaN而不是数字[重复]

0-9在一个数据帧的索引的最左边数字重复多久?