[英]What is wrong with this if statement logic in JavaScript?
if(stringName.charAt(0) != 'Q' || stringName.charAt(0) != 'W' || stringName.charAt(0) != 'E'){
SetID = "Yes";
}
上面的代碼當我使用警報彈出 windows 時,My.String.charAt(0) 的值返回了正確的值,但我不知道為什么它會進入 if 語句並將 SetID 的值更改為Yes
我試圖弄清楚它出了什么問題,但真的什么也看不到
SetID
初始化為No
你正在使用||
但你可能是說&&
...
現在的樣子,永遠都是true
。 “如果字符不是‘Q’,或者不是‘W’,或者不是‘E’,那么……”——即使它是這些字符之一,也不會是其他字符,因此表達式求值為true
。
讓我們分解你的陳述。
MyString.charAt(0) != 'Q'
好的,如果不是 Q,那么它會繼續。
||
因此,如果角色是Q,則沿着鏈繼續。
MyString.charAt(0) != 'W'
至此,我們已經確定該字符不是 Q(在這種情況下運行SetID = "Yes"
),或者它是 Q。但是如果它是 Q,那么很明顯它不是 W,因此下一個條件為真並運行SetID = "Yes"
。
你看? 不管是什么性格,都通過了考驗。
我認為您打算使用&&
,而不是||
. 如果您使用&&
,則SetID = "Yes"
僅在字符為 NONE OF Q、W 或 E 時運行。
不是答案 [評論代碼太多],而是使用 reg exp 的另一種可能的解決方案
var stringName = "Quick";
if( (/^[QWE]/).test(stringName) ){
SetID = "Yes";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.