我使用三元运算符但经常想要检查没有else子句的东西。我想知道是否有任何简短的方法可以省略这一点。
我发现了
a ? b : {}
可替代if (a) {b}
,保存2个字符,但不能
a ? b :
我认为它确实有意义,它是三元运算符。
我唯一想到的是那些空的大括号有点unsightly,还有其他方法可以指定空白的:
语句吗?
或者,是否有二进制?
运算符?我已在规范中翻找过,但无法看到我如何使用二进制逻辑运算符,我猜这是if
的用途。
有没有办法使用binary logical operator来表达{}的条件或速记?我知道这可能是3个字符的懒惰高度,但我只是好奇,如果有人有任何技巧可以分享。
答案 0 :(得分:5)
您的代码有几个问题:
不要这样做;它令人困惑
{}
不是空块;它是一个对象文字。 ""
或0
或42
会产生同样的效果。
&&
运算符可以执行您想要的操作。
答案 1 :(得分:2)
在三元? :
表达式中,子部分不是语句,它们是表达式。我从未见过使用{}
;没关系,但字面上任何非空表达都可以起作用:
a ? b : 0
a ? b : false
a ? b : null
a ? b : 2 + 2
这真的不是编写简单逻辑的最简单方法,比如测试一个简单的条件。在我看来,if
语句更清晰,你不会有一个令人不安的问题,就是必须选择一个毫无意义的表达来填写句法要求。
这也是惯用的,但(再次,意见)并不十分明确:
a && b;
模仿一种称为“守卫”的构造,它存在于某些语言中。