[英]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.