JavaScript Infinity 属性

2025 年 3 月 18 日 | 阅读 7 分钟

在 JavaScript 中,Infinity 是一个特殊的数字,它有一个有趣的属性:比任何有限数都大。我们可能会对无穷数在条件语句和算术运算中的运作方式感到惊讶。如果我们事先不了解 Infinity 的属性,这种运算就会起作用。

让我们来看看 JavaScript 中 Infinity 数字的属性,了解其用例,并避免常见的陷阱。

正无穷和负无穷是另外两个特殊值。请注意,程序表达式 "+Infinity" (Infinity) 和 "-Infinity" 会产生这两个无穷数值。

正无穷

该数字是 Infinity 的初始值。POSITIVE INFINITY(正无穷)大于任何其他有限数。

它在以下方面与数学上的无穷大不同。

  • 如果我们将一个正值除以正无穷,会得到正 0。
  • 如果我们将任何负值除以正无穷,会得到负 0。
  • 0 乘以正无穷等于 NaN。
  • NaN 乘以正无穷等于 NaN。
  • 如果我们用负值除以正无穷,会得到负无穷(负无穷本身除外)。
  • 如果我们用正整数除以正无穷,会得到正无穷(正无穷本身除外)。
  • 正无穷除以负无穷或正无穷都等于 NaN。

语法

以下示例展示了 POSITIVE INFINITY 方法。

示例

以下示例展示了 POSITIVE INFINITY 方法。我们可以使用正数并返回值。

输出

图片显示了简单的无穷信息作为输出。

JavaScript Infinity PROPERTY

负无穷

在 JavaScript 中,还有一个负无穷(-Infinity),其值为 Number.NEGATIVE_INFINITY。-Infinity 小于任何有限数。

它在以下方面与数学上的无穷大不同。

  • 当被任何其他数字除时,负无穷会得到 -0(不同于 0)。
  • 负无穷除以其本身或正无穷时返回 NaN。
  • 当负无穷除以一个正数(非正无穷)时,结果是负无穷。
  • 负无穷乘以任何负数(非负无穷)等于正无穷。
  • 如果我们将负无穷乘以 NaN,结果是 NaN。
  • 0 和负无穷相乘的结果是 NaN。
  • 两个负无穷的和总是等于负无穷。(原文The sum of two negative equations always equals a positive infinity.此处有误,应为负无穷,已修正)
  • 负无穷和正无穷的积总是负无穷。(原文Positive Infinity is always the product of both negative and positive Infinity.此处有误,应为负无穷,已修正)

语法

以下示例展示了 NEGATIVE INFINITY 方法。

示例

以下示例展示了 NEGATIVE INFINITY 方法。

输出

图片显示了负无穷信息作为输出。

JavaScript Infinity PROPERTY

检查是否为无穷

Number.isFinite() 方法检查传入的数字是否为有限数。有限数是指既不是正无穷、负无穷,也不是 NaN 的数字。

语法

以下语法展示了一个无穷值。

参数

  • 将要检查其有限性的值。

返回值

  • 如果输入值是有限数,则返回布尔值 true。否则,返回 false。

示例

以下示例展示了 INFINITY 方法。

输出

图片显示了负无穷和正无穷信息作为输出。

JavaScript Infinity PROPERTY

我们应该在什么时候使用 Infinity?

无穷值对于启动涉及数字比较的计算很有用。

例如,在查找数组中的最小值时,我们可以用 Infinity 来初始化最小值变量。

因为任何有限值都小于 Infinity,所以在第一次 for() 迭代中,最小值将变为第一个元素。

Infinity 的陷阱

我们不会经常处理 Infinity 值。然而,了解无穷属性可能在何时出现是很重要的。

有多种方式可以得到无穷值。

  • 解析数字
  • JSON 序列化
  • 最大数溢出
  • 数学函数

解析数字

假设我们有一个表单用于收集用户信息。表单上有一个字段,用户可以在其中输入他们的 input_val。

  • 因为表单字段的值是一个字符串,我们必须将其转换为数字。
  • 这工作得很好。如果输入的字符串无法转换为数字,parseInt() 会返回 NaN。
  • 如果输入字符串是 Infinity,parseInt() 会返回 NaN,因为无穷数无法被识别。

语法

以下语法应用了 parseFloat() 函数。

parseFloat() 函数能识别 Infinity,并返回一个无穷数。当输入字段包含字符串 'Infinity' 时,最好的做法是生成一个验证错误。

示例

以下示例展示了 parseFloat() 函数。我们可以使用正无穷和负无穷数据。该函数使用 parseFloat() 函数返回一个有限值和无穷值。

输出

图片显示了所有类型的无穷信息作为输出。

JavaScript Infinity PROPERTY

JSON 序列化

JSON.stringify() 会将 Infinity 数字转换为空值 (null)。

语法

以下语法展示了 JSON 序列化方法。

  • rate 属性是 Infinity。然而,当转换为 JSON 时,"rate" 的值变成了 null。

示例

以下示例展示了 JSON 序列化方法。

输出

图片显示了无穷值作为输出。

JavaScript Infinity PROPERTY

最大数溢出

MAX_VALUE 是 JavaScript 中最大的浮点数。当尝试使用一个大于 MAX_VALUE 的数字时,JavaScript 会将其转换为 Infinity。我们可以执行指数、乘法等数学运算。

语法

以下语法展示了最大数溢出方法。

示例

以下示例展示了最大数溢出方法。

输出

图片显示了所有类型的无穷信息作为输出。

JavaScript Infinity PROPERTY

数学运算

在 JavaScript 中,Math 命名空间中的一些函数可以返回无穷数。

当一个函数在没有任何参数的情况下工作时,Math.max() 返回 "-Infinity",而 Math.min() 返回 "Infinity"。如果 JavaScript 尝试查找一个空数组的最大值或最小值,我们可能会感到惊讶。

语法

以下语法展示了针对 infinity 属性的数学运算。

示例

以下示例通过数学运算给出了 infinity 属性。

输出

图片显示了所有类型的无穷信息作为输出。

JavaScript Infinity PROPERTY

最重要的要点

  • 在 JavaScript 中,Infinity 指的是无穷大的概念。任何有限数都小于 Infinity,没有任何有限数大于 -Infinity。
  • 在 JavaScript 中,比较无穷值很简单:Infinity === Infinity 为 True。Number.isFinite() 用于判断提供的参数是否为有限数。
  • 在启动需要进行数字比较的算法时,我们可以使用 Infinity 来初始化变量。一个用例的例子是确定数组的最小值。
  • 在从输入中解析数值时,必须谨慎使用 Infinity:number('Infinity') 和 parseFloat('Infinity') 会返回实际的 Infinity 数字。无穷数在使用 JSON.stringify() 序列化时会变为 null。

结论

在 JavaScript 中,infinity 属性或数据用于处理数学运算和大数据。对于用户和开发者来说,这是一种处理无穷属性或数据的简单而有用的方法。