3 回答

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

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

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