我很高兴找到以下Javascript行为:
$ node
> false/true
0
> false/false
NaN
> false/true
0
> true/true
1
> true/false
Infinity
为什么会这样?
我的第一种方法是,Javascript将false
转换为0
,将true
转换为1
。
这是对的吗?文档中的参考文章很棒。
答案 0 :(得分:1)
你是绝对正确的,ToNumber
抽象操作会将true
转换为1
,将false
转换为正0
。
布尔
如果参数为 true ,则结果为 1 。如果是,结果是 +0 参数是 false 。
答案 1 :(得分:0)
> 0/0
NaN
> 1/0
Infinity
> 0/1
0
> 1/1
1
它们都被转换为数字。