javascript - 为什么 `(state == 1 && 3)` 有意义?

标签 javascript

<分区>

我在 Mithril.js 中看到这段代码:

finish(state == 1 && 3)

在我(Java/C 程序员)看来它应该总是调用 finish(true)如果state1finish(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/

相关文章:

javascript - OpenLayers 3.13v : issue with ol. 格式.GeoJSON()

javascript - 收集数据不适用于 Angular.js 网站

javascript - “twitter-typeahead”gem 语法错误

javascript - 将点表示法转换为 JSON

javascript - 为什么这个基本的 Node.js 错误处理不起作用?

javascript - 将两列变成选项卡

javascript - 我可以在 JavaScript 中获取生成器的当前值吗?

javascript - 为什么在 Javascript 中按位或 0 运算的正数并不总是正数

javascript - "GET"获取脚本文本, "POST"结果为 "405 method not allowed",我 _did_methods=[ 'GET' , 'POST' ] (从 JavaScript 通过 Flask 到 Python)

javascript - 相当于 Angular 中的 getElementById?