二进制逻辑运算符在Javascript中表达条件

Binary logical operator to express a conditional in Javascript

本问题已经有最佳答案,请猛点这里访问。

我使用三元运算符,但经常希望检查没有else子句的内容。我想知道有没有什么捷径可以忽略这一点。

我发现

1
a ? b : {}

作为if (a) {b}的替换,保存2个字符,但不保存

1
a ? b :

我想这是有道理的,它是一个三元运算符。

我唯一的想法是那些空的花括号有点难看,有没有其他方法来指定一个空白的:语句?

或者,是否有二元?运算符?我已经在规范中查过了,但不知道如何使用二进制逻辑运算符,我想这就是if的目的。

是否有某种方法可以使用二进制逻辑运算符来表示的条件或简写?我知道这可能是3个角色懒惰的高度,但我只是好奇是否有人有任何技巧可以分享。


您的代码有几个问题:

  • 别那么做,这很令人困惑

  • {}不是空块;它是一个对象文本。""042具有相同的效果。

  • &&接线员将按您的要求进行操作。


在三元? :表达式中,各小节不是语句,它们是表达式。我从来没有见过{}的用法;没关系,但从字面上看,任何非空的表达式都可以:

1
2
3
4
5
6
7
a ? b : 0

a ? b : false

a ? b : null

a ? b : 2 + 2

这真的不是最清晰的代码简单逻辑的方法,比如测试一个简单的条件。在我看来,一个if语句更清晰,你不必为了满足句法要求而选择一个毫无意义的表达式。

这也是惯用语,尽管(同样,观点)不太清楚:

1
a && b;

它模仿了一些语言中存在的一个称为"保护"的结构。