为什么true / true为1,true / false为Infinity,false / true为0,false / false为NaN?

时间:2013-11-21 14:09:20

标签: javascript node.js

我很高兴找到以下Javascript行为:

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

为什么会这样?


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

这是对的吗?文档中的参考文章很棒。

2 个答案:

答案 0 :(得分:1)

你是绝对正确的,ToNumber抽象操作会将true转换为1,将false转换为正0

specification说:

  

布尔

     

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

答案 1 :(得分:0)

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

它们都被转换为数字。