为啥条件运算符返回的值是true和false

为什么条件运算符返回的值是true和false
大家好!我在学习JavaScript,最近看书上讲到条件运算符(三目运算符),一段代码如下:
<script language="javascript">
var a=10;
var b=10;
alert(a==b)?正确:失败;
</script>
我以为条件运算符返回的值应该是“正确”,但上机运行后,发现是true,如果把==改成!=,即
<script language="javascript">
var a=10;
var b=10;
alert(a!=b)?正确:失败;
</script>
上机运行后,返回的是false
我以为是“正确”和“失败”没用双引号括起来,就加上了,但是结果是一样的。
我不明白这个true和false是从哪来的,为什么结果不是“正确”和“失败”?求大家指点,谢谢!
------解决思路----------------------
var a=10;
var b=10;
alert(a==b?'正确':'失败');
------解决思路----------------------
楼主搞笑了, 这样为什么不报语法错误啊.
------解决思路----------------------
alert(a==b)?正确:失败;  你这句话实际上是在弹出判断 a 是否等于 b的结果,当然只能返回true和false了

要改成

alert(a==b?'正确':'失败')

------解决思路----------------------
为啥条件运算符返回的值是true和false
这么粗心的问题
------解决思路----------------------
alert(a==b)?正确:失败;

alert(a==b?“正确”:“失败”);

粗心