(true + false)> 2 +真;为什么这会返回错误?

时间:2014-02-14 16:35:44

标签: javascript boolean

我正在研究javascript并且无法弄清楚为什么这行返回false:

(true + false) > 2 + true

3 个答案:

答案 0 :(得分:7)

true等于1. false等于0.

所以你的表达式相当于:

(1 + 0) > 2 + 1

减少到

1 > 3

这是假的!

答案 1 :(得分:2)

那是因为您的代码评估为:

1 + 0 > 2 + 1

相当于:

1 > 3

这是由于当您在某些类型(例如布尔值)上使用算术运算符时,Javascript引擎会对Javascript进行求值和解释,在这种情况下,这些类型会被隐式转换为数字。< / p>

答案 2 :(得分:0)

原因叫做类型强制;您在算术运算中使用了两个布尔值,除非解释器首先将它们转换为数字,否则这是不可行的。

true - &gt; 1 false - &gt; 0

亲自尝试;输入+ true,你会得到1;