0

我使用三元运算符,但经常想在没有 else 子句的情况下进行检查。我想知道是否有任何简短的方法可以省略它。

我发现

a ? b : {}

作为 的替代品if (a) {b},节省 2 个字符,但不是

a ? b :

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

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

或者,是否有二元?运算符?我翻遍了规范,但看不到如何使用二元逻辑运算符,我想这就是if目的。

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

4

2 回答 2

5

您的代码有几个问题:

  • 不要那样做;令人困惑

  • {}不是空块;它是一个对象文字。 ""or 0or42会产生同样的效果。

  • &&接线员会做你想做的。

于 2014-05-04T13:44:30.210 回答
2

在三元? :表达式中,小节不是语句,它们是表达式。我从未见过{}使用过;没关系,但实际上任何非空表达式都可以:

a ? b : 0

a ? b : false

a ? b : null

a ? b : 2 + 2

这确实不是编写简单逻辑(如测试简单条件)的最清晰方法。在我看来,一个if语句更清晰,而且你没有为了满足句法要求而不得不选择一个无意义的表达的不舒服的问题。

这也是惯用的,尽管(再次,观点)不是很清楚:

a && b;

这模仿了某些语言中存在的称为“守卫”的结构。

于 2014-05-04T13:45:22.673 回答