3 回答
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
分號(hào)表示語(yǔ)句的結(jié)束。
如果您還不知道,表達(dá)式就是計(jì)算出一個(gè)值的東西。例如,5、'foobar'和myFn()都是表達(dá)式,因?yàn)樗鼈兊挠?jì)算結(jié)果為值。
語(yǔ)句可以由多個(gè)表達(dá)式組成。例如,const result = fn('foo')將'foo'表達(dá)式傳遞給函數(shù)調(diào)用,函數(shù)調(diào)用返回一個(gè)賦給 的值result。
在您的代碼中,這兩行都由兩個(gè)表達(dá)式組成,但每一行恰好是一個(gè)語(yǔ)句。用這條線:
alert() || window.confirm()
會(huì)先評(píng)價(jià)alert。由于alert返回undefined,||運(yùn)算符隨后計(jì)算右側(cè)的表達(dá)式,即window.confirm()。
|您可以使用、||或 等運(yùn)算符將多個(gè)表達(dá)式組合在一起=。您還可以通過將每個(gè)表達(dá)式作為單獨(dú)的語(yǔ)句來(lái)評(píng)估多個(gè)表達(dá)式,例如
alert(); window.confirm();
兩者都會(huì)導(dǎo)致出現(xiàn)警告框和確認(rèn)對(duì)話框。
TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
alert()返回undefined,這是錯(cuò)誤的。因此,window.confirm()仍然會(huì)運(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è)值是否為真。
通常,您會(huì)在聲明之類的地方使用它if:if (i===0 || j===0) {...}但不限于此;例如,您可以將結(jié)果放在一個(gè)變量中,然后在if稍后的語(yǔ)句中使用它:have_zero = i===0 || j===0; ...; if (have_zero) {...}
||(and ) 運(yùn)算符&&確實(shí)有一件特殊的事情:如果左側(cè)確定答案,則它們不會(huì)費(fèi)心計(jì)算右側(cè)(稱為“短路評(píng)估”)。
在這里,你正在計(jì)算alert() || window.confirm(),所以它調(diào)用alert();正如其他人所指出的,這返回undefinedwhich 并不能確定 的答案||,因此 Javascript 然后調(diào)用window.confirm(). 然后答案被丟棄,因?yàn)槟鷽]有將它放在變量中或以其他方式使用它,但這沒關(guān)系 - 您想要調(diào)用這些方法,您對(duì)答案不感興趣。
添加回答
舉報(bào)
