繁体   English   中英

具有三个变量的短路评估

[英]short-circuit evaluation with three variables

我编写了以下代码,认为它将无法正常工作,因为它会像这样:“如果未运行且ID与此匹配,请执行代码”,而忽略中断大小的上限:

if(!isRunning && id==="break-increment" && breakvar<=59){
this.setState((state) => ({
  break: this.state.break +1}))}

令我惊讶的是,它奏效了。 但是我真的不明白为什么。 是否会因为无法评估瓶盖尺寸而失败?

我以为没有短路就不可能有三个条件(例如,如果isRunning为false,那么它只会计算id)

没有。

如果!isRunning为false,则第一个&&短路,并被评估为其LHS(false),而不评估RHS。

如果!isRunning为true,则第一个&&不会短路,并被评估为其RHS( id==="break-increment" && breakvar<=59

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM