簡體   English   中英

javascript 在條件語句中使用 AND 和 OR 的運算符

[英]javascript operators using AND and OR in conditional statements

如果只有條件語句滿足特定要求,我試圖顯示一條消息,但我得到的結果讓我失敗了。 目前,腳本是這樣的

 if ((err.status === 401 && !request.url.includes("users") || !request.url.includes("friends")) ) {
      console.log('hello')

    }

我想要實現的是當狀態為401並且 URL 不包括usersfriends時, console應該記錄hello但它無法工作

當我將代碼更改為此

   if ((err.status === 401 && !request.url.includes("users")) ) {
          console.log('hello')

        }

或這個

 if ((err.status === 401 && !request.url.includes("friends")) ) {
          console.log('hello')

        }

它有效,但我希望它檢查這兩個條件

只需交換|| 對於一個&&

if (err.status === 401 && !request.url.includes("users") && !request.url.includes("friends")) {
    console.log('hello')
}

如果你在腦海中仔細想想,聽起來會像下面這樣。

  1. status必須是401
  2. AND url不應包括users
  3. AND url應該包括friends

如果你想像你寫的那樣編碼:

  1. status必須是401
  2. AND url不應包括usersfriends

你仍然可以這樣做,但有點不同:

if (err.status === 401 && !(request.url.includes("users") || request.url.includes("friends"))) {
    console.log('hello')
}

這兩個代碼的意思完全一樣,只是寫你更喜歡它。 但總是像它在你腦海中流動一樣寫下來。 只需輸入您的想法:)

對於字符串驗證,我建議您使用正則表達式(它可以允許更復雜的驗證)

if(error.status === 401 && !/users|friends/.test(request.url)){
  console.log("hello")
}

平行於寫法的方式:

if(err.status==401 && !(request.url.includes("users") || request.url.includes("friends")))

視覺上:

if
(
  err.status==401
  &&
  !
    (
      request.url.includes("users")
      ||
      request.url.includes("friends")
    )
)

您的代碼幾乎沒問題,只是括號()有一些問題。

格式是:

if( cond1 && !(  cond2 || cond3  ) ) {
 ----- your logic ------
}

所以你的例子應該是這樣的:

if ( err.status === 401 && !( request.url.includes("users") || request.url.includes("friends") ) )  {
            console.log('hello')
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM