【问题标题】:Why isFinite(NaN) is false? [duplicate]为什么 isFinite(NaN) 是假的? [复制]
【发布时间】:2014-08-01 10:45:08
【问题描述】:

由于 NaN 定义了 Not a Number,所以它既不是有限量也不是无限量,那么答案不应该是未定义或未验证或类似的东西而不是错误的吗?

【问题讨论】:

  • "potato" 不是有限数,所以isFinite("potato")falseNaN 不是有限数,所以 isFinite(NaN) 是假的。仅仅因为isFinite(n) == false 并不意味着n == Infinity
  • 其实这样解释更好 -> stackoverflow.com/questions/22489966/why-does-isfinitenull-true如果参数强制为 NaN、+∞ 或 -∞,则返回 false,否则返回 true
  • 让我问你,“词”这个词是有限的吗?我也不知道,因为它甚至不是一个数字,因此它既不是有限的也不是无限的。 (技术细节:ecma-international.org/ecma-262/5.1/#sec-15.1.2.5

标签: javascript nan


【解决方案1】:

isFinite 返回一个布尔响应,true 表示有限数,false 表示其他所有值。

【讨论】:

  • 这不是真的。它不仅对有限数返回 true;实际上,对于可以转换为(有限)数字的字符串/数组,它也会返回 true。
  • 引号中的数字仍然是 javascript-landia 中的数字,我故意在回复中省略了数据类型。在我看来,在弱类型语言中对数据类型持迂腐的态度似乎有点愚蠢。
猜你喜欢
  • 2013-11-26
  • 2014-05-01
  • 1970-01-01
  • 2015-12-24
  • 2014-02-06
  • 1970-01-01
  • 2020-03-12
相关资源
最近更新 更多