3 回答

TA貢獻1827條經驗 獲得超8個贊
分號表示語句的結束。
如果您還不知道,表達式就是計算出一個值的東西。例如,5
、'foobar'
和myFn()
都是表達式,因為它們的計算結果為值。
語句可以由多個表達式組成。例如,const result = fn('foo')
將'foo'
表達式傳遞給函數調用,函數調用返回一個賦給 的值result
。
在您的代碼中,這兩行都由兩個表達式組成,但每一行恰好是一個語句。用這條線:
alert() || window.confirm()
會先評價alert
。由于alert
返回undefined
,||
運算符隨后計算右側的表達式,即window.confirm()
。
|
您可以使用、||
或 等運算符將多個表達式組合在一起=
。您還可以通過將每個表達式作為單獨的語句來評估多個表達式,例如
alert(); window.confirm();
兩者都會導致出現警告框和確認對話框。

TA貢獻1775條經驗 獲得超11個贊
alert()
返回undefined
,這是錯誤的。因此,window.confirm()
仍然會運行,以你的例子為例||
。
至于單個管道字符|
,這是按位或,您可以在此處閱讀: https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Bitwise

TA貢獻1890條經驗 獲得超9個贊
The||
是一個運算符,例如+
or /
;它計算了一些東西。在 的情況下||
,它計算一個或另一個值是否為真。
通常,您會在聲明之類的地方使用它if
:if (i===0 || j===0) {...}
但不限于此;例如,您可以將結果放在一個變量中,然后在if
稍后的語句中使用它:have_zero = i===0 || j===0; ...; if (have_zero) {...}
||
(and ) 運算符&&
確實有一件特殊的事情:如果左側確定答案,則它們不會費心計算右側(稱為“短路評估”)。
在這里,你正在計算alert() || window.confirm()
,所以它調用alert()
;正如其他人所指出的,這返回undefined
which 并不能確定 的答案||
,因此 Javascript 然后調用window.confirm()
. 然后答案被丟棄,因為您沒有將它放在變量中或以其他方式使用它,但這沒關系 - 您想要調用這些方法,您對答案不感興趣。
添加回答
舉報