<分区>
我在 Mithril.js
中看到这段代码:
finish(state == 1 && 3)
在我(Java/C 程序员)看来它应该总是调用 finish(true)
如果state
是1
和 finish(false)
如果state
不是 1
.但它实际上似乎是finish(3)
对于前者和 finish(false)
对于后者。
这背后的逻辑是什么?
这在 JavaScript 中是惯用的,还是一个坏主意?对我来说,它非常晦涩难懂。
标签 javascript
<分区>
我在 Mithril.js
中看到这段代码:
finish(state == 1 && 3)
在我(Java/C 程序员)看来它应该总是调用 finish(true)
如果state
是1
和 finish(false)
如果state
不是 1
.但它实际上似乎是finish(3)
对于前者和 finish(false)
对于后者。
这背后的逻辑是什么?
这在 JavaScript 中是惯用的,还是一个坏主意?对我来说,它非常晦涩难懂。
最佳答案
您可以像这样解释运算符 ||
和 &&
:
A || B
→ A ? A : B
A && B
→ A ? B : A
但是没有计算 A
两次。
关于javascript - 为什么 `(state == 1 && 3)` 有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26025146/