gpt4 book ai didi

javascript - 为什么 Boolean(Infinity) 给出 true?

转载 作者:行者123 更新时间:2023-11-30 08:06:27 24 4
gpt4 key购买 nike

有人可以解释为什么 Boolean(Infinity) 为真而 Boolean(NaN) 为假吗?

Infinity || true

表达式给出无穷大。`

NaN || true

` 表达式为真。

最佳答案

EMCAScript 的 logical OR使用 ToBoolean 将其参数转换为 bool 值,对于数字的行为如下:

The result is false if the argument is +0, −0, or NaN; otherwise the result is true.

因此,NaN 变为 falseInfinity 变为 true。我们有时将值称为“真”或“假”,这取决于 ToBoolean 是否将它们强制为 truefalse

如果您查看逻辑或的规范,运算符返回原始 lvalrval(左/右值),不是它的强制 bool 值。这就是为什么(Infinity || true) == Infinity:ToBoolean(lval)的值为true,所以表达式返回原来的lval.

关于javascript - 为什么 Boolean(Infinity) 给出 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17454239/

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