gpt4 book ai didi

javascript - `+Infinity`中明确与 `ToLength`比较的目的

转载 作者:行者123 更新时间:2023-11-29 21:14:05 26 4
gpt4 key购买 nike

标准 (ES2016) 将 ToLength 操作定义为

  1. len 是? ToInteger(参数)
  2. 如果 len ≤ +0,返回 +0
  3. 如果len+∞,返回2^53-1
  4. 返回 min(len, 2^53-1)

为什么这里需要第 3 步? min(len, 2^53-1) 不会处理 len 为 +Infinity 的情况吗?

PS:在 ES2015 中它略有不同,但具有相同的“冗余”步骤。

UPD:查看 tc39 存储库的链接,我在其中解决了同样的问题。

引用资料:

最佳答案

鉴于 Math.min 在给定那个或 Infinity 选项时返回 2^32-1,我怀疑是规范编写者过于热心了。

> Math.min(Infinity, Math.pow(2, 53)-1)
9007199254740991

此外,当涉及无穷大时,“min”实际上没有任何意义。虽然 Infinity 可以具有正值或负值,但 +Infinity 并不总是大于所有其他值。无穷大有时意味着“未定义的数字”,有时可以使用极限来计算。只是不要在这里问我举个例子。

关于javascript - `+Infinity`中明确与 `ToLength`比较的目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40275302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com