Arm*_*tov 0 javascript boolean-logic boolean-expression
所以我想知道是否有办法做双倍大于,比如:
if(x > y > z) { ... }
Run Code Online (Sandbox Code Playgroud)
然后我看到这个 表达式"超过x而不是y"?
但后来我在控制台中尝试了以下表达式并获得了一个奇怪的结果:
(5 < 2 < 1) // returned true
(5 > 2 > 1) // returned false
Run Code Online (Sandbox Code Playgroud)
怎么样?
更新:我知道你不能这样做"(x> y> z)",只是想要解释奇怪的结果.
你需要两个独立的条件,比如5<2 && 2<1为了做你想做的事情.如果没有两个条件,则将第一个条件的结果与第二个条件的右侧进行比较.
对于无法解释的行为,我相信为什么它返回它返回的原因的解释是javascript在数值运算中使用时处理布尔值(等等)的方式,换句话说,javascript会将你的布尔值转换为0或1,有在这里的几个问题中有很多这样的例子,例如这个,你可以做到+false并得到0例如.
(5 < 2 < 1)是true因为:
5<2首先解决,返回falsefalse被转换为数字,返回00<1将返回true
(5 > 2 > 1)是false因为:
5>2首先解决,将返回truetrue被投射到一个数字,将返回11>1将返回false
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |