JavaScript Infinity 语法
Infinity 是 JavaScript 中的一个特殊值,用于表示无穷大。其中,Infinity 和 -Infinity 可以通过以下方式产生:
- 正无穷(Infinity):当一个正数除以 0 时,或者任何大于 Number.MAX_VALUE 的数。
- 负无穷(-Infinity):当一个负数除以 0 时,或者任何小于 -Number.MAX_VALUE 的数。
注意:
- Infinity 是一个全局属性(顶层对象的属性),我们可以直接使用而无需创建实例。
- Infinity 表示的是一个无穷大值,而不是一个无限值,这两个概念是不一样的。其中,无限值包括无穷大值。
- Infinity 是一个原始数据类型,它属于 number 类型。typeof Infinity 的结果是 "number"。
JavaScript Infinity 摘要
| 属于 | JavaScript 全局对象 |
|---|---|
| 使用频率 | 低 |
| 官方文档 | 查看 |
| MDN | 查看 |
JavaScript Infinity 示例
接下来,我们通过几个简单的例子来讲解一下 JavaScript Infinity 是如何使用的。
示例 1:正数除以 0
const result = 666 / 0;
console.log(result);运行结果如下。
Infinity分析:
在传统的数学运算中,任何数除以 0 都是不被允许的,通常会抛出错误。但在 JavaScript 中,任何一个正数除以 0,结果都是 Infinity。
示例 2:负数除以 0
const result = -666 / 0;
console.log(result);运行结果如下。
-Infinity分析:
与正数相反,任何一个负数除以 0,结果都是 -Infinity。
示例 3:超出最大值
const maxNumber = Number.MAX_VALUE;
const result = maxNumber * 2;
console.log(result);运行结果如下。
Infinity分析:
Number.MAX_VALUE 已经是 JavaScript 能表示的最大值。当它乘以 2 时,结果超出了这个范围,因此变成了 Infinity。
示例 4:判断是否 Infinity 值
const result1 = 10 / 2;
const result2 = 10 / 0;
const result3 = -10 / 0;
const result4 = NaN;
console.log(isFinite(result1));
console.log(isFinite(result2));
console.log(isFinite(result3));
console.log(isFinite(result4));运行结果如下。
true
false
false
false分析:
我们可以使用 isFinite() 函数或 Number.isFinite() 方法来判断某个值是否为一个有限数值。如果参数是 Infinity、-Infinity 或 NaN,则返回 false,否则返回 true。
Infinity 的运算特性
对于 Infinity,小伙伴们要清楚以下几点。
- Infinity + Infinity 结果为 Infinity。
- Infinity * Infinity 结果为 Infinity。
- Infinity - Infinity 结果为 NaN。
- Infinity / Infinity 结果为 NaN。
- 任何正数 / Infinity 结果为 0。
- 任何负数 / Infinity 结果为 -0。
这些运算结果在处理可能出现超出范围的数值时非常有用,可以帮助我们避免程序异常。
