Javascript 中的 Infinity 属性有什么用?

2023-11-23

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

例如,下面的代码可以工作,但结果不是我所期望的。

alert(isOdd(Infinity));

function isOdd(num) { return num%2==1; }

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 概念的过程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 中的 Infinity 属性有什么用? 的相关文章

随机推荐

  • 计算出一天已过去的百分比

    有点奇怪的问题 但希望有人能帮忙 本质上 如果时间是中午 12 点 则经过百分比为 50 上午 6 点为 25 下午 16 点为 75 给定当前时间 您如何计算出已经过去了多少天 假设您可以获得一天中的当前时间 那么计算一天过去的百分比将非
  • JSpinner.DateEditor 必须包含年份,即使开始和结束是同一年

    我有一个使用 SpinnerDateModel 的 JSpinner 其开始日期为 2010 年 1 月 1 日 00 00 00 000 结束日期为 2010 年 1 月 1 日 00 12 34 217 我希望我的 JSpinner D
  • 如何设置在整个应用程序中可访问的全局变量

    我开发了一个带有全局变量的PHP页面 如下所示 global amty imgCache amty imgCache array GLOBALS amty imgCache amty imgCache 该页面具有向该数组添加 删除条目的功能
  • 使用管道符号作为分隔符拆分字符串

    为什么下面的输出是 并不是 1 String input 1 2 3 String values input split System out println values 0 Output 但是 如果我们更改分隔符 则输出为 1 Stri
  • Grub 2 未检测到内核中的多重引导标头

    我在使用 Grub 2 以及 QEMU 的 kernel 没有检测到我的内核中的 Multiboot v1 标头 我之前将标题放在单独的部分中 text linker ld SECTIONS 1M multiboot ALIGN 4K mu
  • 如何列出 git 存储库中跟踪文件的所有不同扩展名?

    我想知道所有不同的扩展名给定存储库中 git 跟踪的文件的数量 以便创建适当的 gitattributes file 预期输出示例 bat gitignore gradle html jar java js json md png prop
  • Golang 中的泛型方法参数

    我需要帮助才能使其适用于任何类型 我有一个函数 我需要接受其他类型ID财产 我尝试过使用接口 但这对我来说不起作用ID财产案 这是代码 package main import fmt strconv type Mammal struct I
  • 如何加密非阻塞 PHP 套接字流?

    我正在尝试以非阻塞 异步 方式使用 PHP 的stream socket client 函数 PHP 网站上的文档表明 STREAM CLIENT ASYNC CONNECT 选项标志应该启用此功能 然而 下面的代码 start time
  • C# .net 更改标签文本

    您好 我尝试使用此代码 但由于某种原因它不起作用 确实需要帮助 问题是当我进入网站时 标签不会从 标签 更改名称
  • 是否可以在我的网站上禁用 IE8“加速器”?

    我是一名专注于 UI 的 Web 开发人员 我的 Web 应用程序中的许多界面功能都是基于双击的 在 IE 中 这会带来新的烦人的问题 加速器 图标干扰我的用户界面 是否可以禁用我的页面上的 加速器 也许有一些新的愚蠢的特定于 IE 的me
  • 如何捕获div中的一行文本

    我浏览过与此相关的类似 SO 帖子 但没有一个完全符合我正在寻找的内容 假设我有一些文本 我将其放入 div 中 然后向该 div 添加一些任意 甚至可能是动态 宽度 有没有什么方法可以让我以编程方式捕获和操作 div 中的各个文本行 例如
  • Json.NET 按深度和属性序列化

    例如我们有两个类 class FooA SomeSpecialAttribute public int SomeValueA get set public int SomeValueB get set public int SomeValu
  • Persistence.xml放在eclipse项目的哪里

    简单的问题 我在Eclipse环境中有一些项目MainApp 企业应用项目 其中 包含 Web控制器 EJB项目 WebModel JPA 项目 WebView 动态Web项目 问题是 persistence xml 文件放在哪里 获取异常
  • Spring Boot、静态资源和mime类型配置

    我面临着无法处理的 Spring Boot 配置问题 我正在尝试使用 Spring Boot 为 HbbTV 构建一个 HelloWorld 示例 因此我需要使用 mime type application vnd hbbtv xhtml
  • 从本地服务器迁移到 Azure:TIMEZONE UTC。怎么解决?

    我设计我的应用程序时考虑到了这样一个事实 根据规范 应该在位于意大利的服务器上运行 并且客户端只能是意大利人 大约一个月前 我的老板决定将所有内容都放在 Azure 上 一切都很顺利 唯一给我带来问题的是时间服务器是 UTC 解决方案是 一
  • 标记为“内容”->“始终复制”的文件不会被复制

    我的 C VS2010 项目的文件夹中有一个文件标记为Content and Always Copy 当我更改此文件并将其保存到 VS 外部 然后运行该项目时 修改后的文件不会复制到输出中 如果我重建 那就是 我的猜测是VS不会使用文件的修
  • 在自定义 powershell 函数中模拟 -ErrorAction

    如何在自定义 powershell 函数中模拟 ErrorAction 例如考虑以下脚本 function Foo2 Write Host in Foo2 Error occurs Foo3 function Foo1 Write Host
  • 是否值得在代码中缓存 glsl 统一位置?

    我希望能够通过着色器中的实际名称设置制服 myProgram uniform3fv uniformVector 0 0f 0 1f 1 0f 我是否必须以某种形式的地图缓存位置 std map
  • Android 片段显示为对话框片段或普通片段

    我想要实现的是有一个片段 在平板电脑上显示为DialogFragment 而在智能手机上它将显示为常规片段 我知道已经有一个类似的帖子 但我无法做到这一点 将样式应用于片段 为了自上而下地显示内容 MainActivity java pub
  • Javascript 中的 Infinity 属性有什么用?

    为什么 Infinity 属性用作命令 而不是结果 例如 下面的代码可以工作 但结果不是我所期望的 alert isOdd Infinity function isOdd num return num 2 1 MDN 参考 无穷大是全局对象