MDN 参考
无穷大是全局对象的一个属性,即它是一个变量
全球范围。
Infinity 的初始值为 Number.POSITIVE_INFINITY。价值
无穷大(正无穷大)大于任何其他数字。这
值在数学上的表现类似于无穷大;例如,任何积极的
数字乘以无穷大就是无穷大,任何除以
无穷大为 0。
首先这是什么意思?本质上,无穷大是一个概念,而不是实际值。数学基于概念而不是价值观。例如,数字不是值,数字才是。
数字 7 是预期值的概念,罗马人将其写为 VII,在标准形式(BASE-10)中将其写为 7。在二进制(BASE-2)中将其写为 111。如果您想使用只要概念应用正确,三角形或任何其他标记也可以。
现在您知道了,无穷大只是大于任何其他数字的概念。它没有任何价值。无限循环的基本概念意味着永远运行的唯一原因是,从概念上讲,这意味着无论您所处的循环迭代次数(无论是 1 还是一百万)无穷大,都将始终大于该数字。
在编码中应用概念的方法有很多,这就是为什么每个人的代码运行方式都不同,但例如:
样本取自 w3schools:
function findMax(x) {
var i;
var max = -Infinity;
for(i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
document.getElementById("demo").innerHTML = findMax(1, 123, 500, 115, 44, 88);
在该网站的示例中,他们将 6 个值的参数传递给函数 findMax
findMax(1, 123, 500, 115, 44, 88);
然后他们使用循环在参数长度处停止。在循环中,它们将无穷大概念中的最大值重新分配给一个值,如果再次循环时大于该值,则最大值将更改为新的高值。
为什么这很重要?因为在这个例子中,他们使用了负无穷大的概念,这只是无穷大的值负递减。人们很容易认为 0 可以取代 -Infinity,但他们错了。这就是为什么。
如果您的值范围还取决于上面公式中传递的负值怎么办?如果您拥有的只是从用户输入或其他函数动态捕获的负值怎么办?
考虑 findMax 是 findMax(-1, -10, -15, -20);
0 会给出错误的输出,表明它是正确的最大值,这不是您想要的。您希望输出为 -1 1。还有其他方法可以实现该解决方案,但为了无限概念讨论,我将在此结束。
我希望这能让大家更多地了解 Infinity 概念的过程。