http://en.wikipedia.org/wiki/Short-circuit_evaluation表示"短路运算符实际上是控制结构",http://en.wikipedia.org/wiki/Perl_language_structure#Control_structures表示"短路逻辑运算符通常用于影响表达式级别的控制流",直接从后者获得的伪代码示例为:
expr && expr
我在《Minimal Perl》这本书中看到了上面推荐的东西。那么为什么不使用Javascript呢?昨天我写了如下内容:
myModule && myModule.myMethod(); //instead of if (myModule) myModule.myMethod();
有没有人知道在Javascript中使用这种习惯用法的其他例子,可能来自开源框架?它的缺点是什么,如果有的话(除此之外,"有人可能不理解它")?
myModule && myModule.myMethod()
在JavaScript中工作。但自从ECMAScript 2020以来,有了更好的东西:可选链接(?.):
myModule?.myMethod()
在React中,条件渲染可以与逻辑&&操作符,请参阅https://reactjs.org/docs/conditional-rendering.html#inline-if-with-logical--operator下面是相关的代码片段(我的内联观察并不是严格意义上的,检查长度对于示例来说是最小和最容易理解的):
return (
// Don't directly check length, instead
// consider a more flexible "shouldRender" method
<div>
<h1>Hello!</h1>
{unreadMessages.length > 0 &&
<h2>
You have {unreadMessages.length} unread messages.
</h2>
}
</div>
);