gpt4 book ai didi

javascript - 为什么 Math.min([]) 的计算结果为 0?

转载 作者:行者123 更新时间:2023-12-03 00:19:32 24 4
gpt4 key购买 nike

为什么Math.min([])评估为0

我希望它的计算结果为 NaNMDN's manpage for Math.min声明“如果至少一个参数无法转换为数字,则返回 NaN。”

所以我想更精细的问题是为什么 [] 强制为 0?特别是考虑到[]是真的(即 !![] === true )和 Math.min(true) === 1 。我这样想有错吗?

在 Node v7.0.0 上测试

最佳答案

Why does Math.min([]) evaluate to 0?

因为规范是这样说的:

Math.min使用...将每个参数转换为数字

ToNumber使用...将对象转换为数字

ToPrimitive使用...将对象转换为原始值

[[Default Value]]内部方法根据对象的提示参数将对象转换为基元。

The default hint for all objects is string 。这意味着数组被转换为字符串,对于 [] 来说是 ""

ToNumber 然后将 "" 转换为 0,按照 the documented algorithm

Math.min 然后根据其算法获取唯一的参数并返回它。

关于javascript - 为什么 Math.min([]) 的计算结果为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41601309/

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