下面的javascript函数输出为false
,为什么导致false?
console.log(15 > 10 > 5);
答案 0 :(得分:3)
因为比较运算符采用两个操作数。因此,首先,您的代码评估15 > 10
并返回true
,然后执行true > 5
并明显返回false
答案 1 :(得分:2)
comparison operators接受两个操作数,并从左到右关联。这意味着表达式15 > 10 > 5
被评估为(15 > 10) > 5
。
15 > 10
显然计算为true
。
true > 5
的评估方式并不明显。
幸运的是,JavaScript documentation解释了当值具有不同类型时如何转换它们:
如果其中一个操作数是布尔值,则布尔值操作数如果为true,则转换为
1
,如果为+0
,则转换为false
。
这意味着true > 5
的评估方式与1 > 5
相同,只是现在结果清楚了:false
。