亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 | 和|| 類似于 Javascript 中的分號?

為什么 | 和|| 類似于 Javascript 中的分號?

明月笑刀無情 2023-02-17 16:09:39
我在 Chrome 的控制臺上測試了一些東西,然后我運行了那段代碼:alert() | window.confirm();  alert() || window.confirm();我的問題是在不使用分號的情況下在一行中同時運行警報和確認方法。事實證明,兩者 | 和|| 有效,我無法想象它為什么有效,首先是因為|| 表示一個 OR 運算符,它應該運行其中一個,而不是同時運行,其次| 我不知道那是什么。有人可以解釋發生了什么,還有什么可以代替; ?
查看完整描述

3 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

分號表示語句的結束。

如果您還不知道,表達式就是計算出一個值的東西。例如,5、'foobar'myFn()都是表達式,因為它們的計算結果為值。

語句可以由多個表達式組成。例如,const result = fn('foo')'foo'表達式傳遞給函數調用,函數調用返回一個賦給 的值result。

在您的代碼中,這兩行都由兩個表達式組成,但每一行恰好是一個語句。用這條線:

alert() || window.confirm()

會先評價alert。由于alert返回undefined,||運算符隨后計算右側的表達式,即window.confirm()。

|您可以使用、||或 等運算符將多個表達式組合在一起=。您還可以通過將每個表達式作為單獨的語句來評估多個表達式,例如

alert();
window.confirm();

兩者都會導致出現警告框和確認對話框。


查看完整回答
反對 回復 2023-02-17
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

alert()返回undefined,這是錯誤的。因此,window.confirm()仍然會運行,以你的例子為例||。

至于單個管道字符|,這是按位或,您可以在此處閱讀: https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Bitwise


查看完整回答
反對 回復 2023-02-17
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

The||是一個運算符,例如+or /;它計算了一些東西。在 的情況下||,它計算一個或另一個值是否為真。

通常,您會在聲明之類的地方使用它ifif (i===0 || j===0) {...}但不限于此;例如,您可以將結果放在一個變量中,然后在if稍后的語句中使用它:have_zero = i===0 || j===0; ...; if (have_zero) {...}

||(and ) 運算符&&確實有一件特殊的事情:如果左側確定答案,則它們不會費心計算右側(稱為“短路評估”)。

在這里,你正在計算alert() || window.confirm(),所以它調用alert();正如其他人所指出的,這返回undefinedwhich 并不能確定 的答案||,因此 Javascript 然后調用window.confirm(). 然后答案被丟棄,因為您沒有將它放在變量中或以其他方式使用它,但這沒關系 - 您想要調用這些方法,您對答案不感興趣。


查看完整回答
反對 回復 2023-02-17
  • 3 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號