[英]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 不包括users
或friends
時, 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')
}
如果你在腦海中仔細想想,聽起來會像下面這樣。
status
必須是401
url
不應包括users
url
不應該包括friends
如果你想像你寫的那樣編碼:
status
必須是401
url
不應包括users
或friends
你仍然可以這樣做,但有點不同:
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.