Infinity是JavaScript中表示正无穷大的合法数值,由正数除以0、超限运算或显式赋值产生;-Infinity表示负无穷大;可用isFinite()、===等判断,参与运算时遵循特定规则。

Infinity 是 JavaScript 中 Number 类型的一个特殊值,表示“正无穷大”,它不是错误或异常,而是一个合法的数值,可用于数学运算和比较。
Infinity 的产生方式
以下情况会得到 Infinity:
- 正数除以 0,例如
5 / 0→ Infinity - 超出 JavaScript 最大安全整数范围(
Number.MAX_VALUE)的正数运算,例如Number.MAX_VALUE * 2 - 显式赋值:
let x = Infinity; - 全局属性
Infinity本身(只读,不可修改)
负无穷大:-Infinity
对应地,-Infinity 表示负无穷大,通常由负数除以 0 得到,例如 -5 / 0。它也属于 Number 类型,且 typeof -Infinity === 'number' 为 true。
与 Infinity 相关的判断和操作
不能用 == 或 === 直接比较 Infinity 和字符串 "Infinity",必须用数值方式判断:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
立即学习“Java免费学习笔记(深入)”;
- 用
isFinite()判断是否为有限数(返回 false 表示是 Infinity 或 -Infinity 或 NaN) - 用
Number.isFinite()更严格,只对有限数字返回 true - 直接比较:
x === Infinity或x === -Infinity -
Math.pow(2, 1024)等极大指数运算也会返回 Infinity
实际使用中的注意事项
Infinity 参与常规算术运算时有明确规则:
-
Infinity + 1、Infinity * 2仍为 Infinity -
Infinity - Infinity或Infinity / Infinity结果是 NaN -
Math.max(1, 2, Infinity)返回 Infinity;Math.min(1, 2, -Infinity)返回 -Infinity - 在数组排序中,Infinity 会被排在末尾(升序),-Infinity 在开头
它不是神秘值,而是标准定义的数值,合理使用能简化边界处理逻辑,比如初始化最大值搜索:let max = -Infinity;。

















