为什么15> 10> 5假?

问题描述 投票:-1回答:2

下面的javascript函数输出为false,为什么它会导致错误?

console.log(15 > 10 > 5);
javascript
2个回答
3
投票

因为比较运算符需要两个操作数。首先,你的代码评估返回15 > 10true然后它确实true > 5显然返回false


2
投票

comparison operators从左到右采取两个操作数和同事。这意味着表达式15 > 10 > 5被评估为(15 > 10) > 5

15 > 10显然评估为true

true > 5的评估方式并不明显。

幸运的是,JavaScript documentation解释了当它们具有不同类型时如何转换值:

如果其中一个操作数是布尔值,则布尔操作数将转换为1(如果为true)和+0(如果它是false)。

这意味着true > 5的评估方式与1 > 5相同,只是现在结果很明确:它是false

© www.soinside.com 2019 - 2024. All rights reserved.