Javascript中使用的Infinity属性是什么?

ina*_*ina 5 javascript infinity

为什么Infinity属性用作命令(而不是结果)

例如,下面的代码有效,但结果不符合我的预期.

alert(isOdd(Infinity));

function isOdd(num) { return num%2==1; }
Run Code Online (Sandbox Code Playgroud)

Bri*_*lis 5

MDN参考

无限是全局对象的属性,即它是全局范围内的变量。

Infinity的初始值为Number.POSITIVE_INFINITY。值无穷大(正无穷大)大于任何其他数字。这个值在数学上就像无穷大。例如,任何正数乘以Infinity就是Infinity,任何除以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);
Run Code Online (Sandbox Code Playgroud)

在站点的示例中,他们将6个值的参数传递给函数findMax findMax(1,123,500,115,44,88);

然后,他们使用循环停止在参数长度处。在循环中,他们将无穷大的概念中的最大值重新分配给一个值,如果在再次循环时大于该值,则最大值将更改为新的高值。

为什么这很重要?因为在该示例中,他们使用负无穷大的概念,这只是无穷大的值负向递减。可以轻松地说出0可以代替-Infinity,但它们是错误的。这就是为什么。

如果您的值范围取决于也在上式中传递的负值怎么办?如果您所拥有的都是从用户输入或其他功能动态捕获的负值,该怎么办?

考虑findMax是findMax(-1,-10,-15,-20);

0将给出错误的输出,表明它不是您想要的正确最大值。您希望将-1设为输出。还有其他方法可以实现该解决方案,但是为了讨论Infinity概念,我将在这里结束。

我希望这可以为“无限”概念的过程提供更多的启示。


Chu*_*uck 3

Infinity是全局对象的属性,它保存表示无穷大数学概念的数值。我不知道它可以被称为“命令”的任何正常定义。

关于您的编辑,应该返回 false (我运行它来确认这一怀疑,并且它在我的浏览器上执行了)。这是正确的,因为无穷大通常不被视为奇数。