【问题标题】:checking NAN in typescript [duplicate]在打字稿中检查 NAN [重复]
【发布时间】:2017-10-03 06:49:29
【问题描述】:

我想检查输入的字符串是否是打字稿中的 NAN。目前我正在这样做

if (isNaN(parseInt(input))) return "It's not a number."

如果我输入 @@@@ 或 #### 可以正常工作,但如果我输入“444@@@@”,则无法正常工作。

【问题讨论】:

  • 这个问题与TypeScript无关,TypeScript只是JavaScript之上的一个打字层和一个转译器。

标签: javascript


【解决方案1】:

parseInt 解析直到输入字符串中的第一个非数字,see MDN

如果 parseInt 在指定的基数中遇到不是数字的字符,它会忽略它和所有后续字符并返回解析到该点的整数值。 parseInt 将数字截断为整数值。允许前导和尾随空格。

在这种情况下,parseInt("444@@@@") === 444444 不是 NaN

如果要检查整个字符串是否代表有效数字,use Number instead:

if (isNaN(Number(input))) return "It's not a number."

或者,使用一元加号运算符强制类型转换为number(相当于调用Number):

if (isNaN(+input)) return "It's not a number."

编辑:实际上,isNaN 无论如何都会进行类型转换,所以你也可以直接调用它:

if (isNaN(input)) return "It's not a number."

【讨论】:

  • if (isNaN(input)) 返回“这不是一个数字。”这行得通。谢谢。
猜你喜欢
  • 2021-12-12
  • 2022-07-20
  • 2011-03-27
  • 1970-01-01
  • 2018-11-03
  • 2019-02-01
  • 2015-03-26
  • 2021-05-23
  • 2019-07-30
相关资源
最近更新 更多