为什么true/true是1,true/false是无穷大,false/true是0,false/false是NaN

Why true/true is 1, true/false is Infinity, false/true is 0 and false/false is NaN?

本文关键字:false true NaN 为什么 无穷大      更新时间:2023-09-26

我很高兴发现以下Javascript行为:

$ node
> false/true
0
> false/false
NaN
> false/true
0
> true/true
1
> true/false
Infinity

为什么会发生这种情况?


我的第一种方法是Javascript将false转换为0,将true转换为1

这是正确的吗?如果能参考一下文件,那就太好了。

你说得对,ToNumber抽象运算将true转换为1,将false转换为正0

说明书上写着:

布尔型

如果参数为true,则结果为1。如果参数为false

> 0/0
NaN
> 1/0
Infinity
> 0/1
0
> 1/1
1

它们都被转换成数字。