【发布时间】:2019-03-30 15:23:04
【问题描述】:
如何减少 JavaScript 中的 if 语句
if(obj.attributes && obj.attributes.email === 'test@test.com') { ... }
【问题讨论】:
-
如果
obj.attributes可能是未定义的,你不能 - 好吧,你可以使用 try/catch,但这可能是更多代码 -
坦率地说,这对我来说看起来不错,它已经清晰简洁了。虽然你可以使用更短但可以说更糟:
if ((obj.attributes || {}).email === "test@test.com") { ... } -
那张支票没有问题。一种可能的选择是
if((obj.attributes || {email:''}).email === 'test@test.com') { ... },但看起来更糟。 -
没有简单的方法可以做到这一点。解决方法是存在的,但它们只对更长的链真正值得 - 在这种情况下,我通常这样做的方式无论如何都会很长,而且可能更难阅读。
-
相关:Null-safe property access (and conditional assignment) in ES6/2015,如果我们有可选的链接,你可以使用
obj.attributes?.email === ...。
标签: javascript if-statement shorthand