ina*_*ina 5 javascript infinity
为什么Infinity属性用作命令(而不是结果)
例如,下面的代码有效,但结果不符合我的预期.
alert(isOdd(Infinity));
function isOdd(num) { return num%2==1; }Run Code Online (Sandbox Code Playgroud)
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概念,我将在这里结束。
我希望这可以为“无限”概念的过程提供更多的启示。
Infinity是全局对象的属性,它保存表示无穷大数学概念的数值。我不知道它可以被称为“命令”的任何正常定义。
关于您的编辑,应该返回 false (我运行它来确认这一怀疑,并且它在我的浏览器上执行了)。这是正确的,因为无穷大通常不被视为奇数。
| 归档时间: |
|
| 查看次数: |
2212 次 |
| 最近记录: |