在 JavaScript 中,为什么 0 除以 0 返回 NaN,而其他数除以 0 返回 Infinity?

在 JavaScript 中,除以 0 会返回特殊值。但是,0 除以 0 和其他数字除以 0 的结果不同。

0 除以 0 返回 NaN

当我们尝试用 0 除以 0 时,JavaScript 引擎无法确定应该返回什么结果。这是因为结果可以是任何数字。

例如:

------------- - --- -- ---

NaN 表示“不是一个数字”,它表示无法进行有效的数学计算。在这种情况下,JavaScript 中的 NaN 告诉我们,表达式的结果不是数字。

其他数字除以 0 返回 Infinity 或 -Infinity

另一方面,如果我们尝试将任何其他数字除以 0,则 JavaScript 引擎知道结果应该是正无穷大或负无穷大之一。这是因为除以 0 表示一个非常大的数字,它与无穷大相似。

例如:

-------------- - --- -- --------
--------------- - --- -- ---------

Infinity 表示正无穷大,而 -Infinity 表示负无穷大。这些值表示一个非常大的数字,它与无限接近。

结论

因此,在 JavaScript 中,0 除以 0 返回 NaN,而其他数字除以 0 返回 Infinity 或 -Infinity。

这种行为可以用来检查数字的有效性。例如,如果我们知道一个数字应该是正无穷大(或负无穷大),但是它实际上却不是,那么我们可以确定该数字无效。

--- --- - ----------------------------
-- ------------ -
  --------------------
- ---- -- ---- --- --------- -
  -----------------------
- ---- -- ---- --- ---------- -
  -----------------------
- ---- -
  --------------------------
-

这段代码会提示用户输入一个数字,并对输入进行验证。如果输入是 NaN,则认为它无效。如果输入是正无穷大或负无穷大,则说明它不是一个有效的数字。否则,我们可以确认输入是一个有效的数字。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/27467