簡體   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