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
首先解决,返回false
false
被转换为数字,返回0
0<1
将返回true
(5 > 2 > 1)
是false
因为:
5>2
首先解决,将返回true
true
被投射到一个数字,将返回1
1>1
将返回false
归档时间: |
|
查看次数: |
170 次 |
最近记录: |