2015-08-13 73 views
-4

在我的代碼中,我有這個if/else聲明來處理數字和字母都返回cont = false的情況。我試着運行這個代碼,結果相同。顯然,它應該執行else語句中的代碼。有沒有人有任何想法?If/Else Statement返回誤報

var input = prompt() 

if (input == null || " ") { 
    //Cont determines whether or not to continue 
    console.log("cont = false"); 
    var cont = false; 
}else{ 
    console.log("cont = true"); 
    var cont = true; 
} 
+3

條件'|| 「」**總是正確**。 – deceze

+0

您應該閱讀JS中的各種比較運算符以及它們的工作方式:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators。 – scrappedcola

回答

7

因爲該代碼不是你如何檢查一個輸入與兩個值。

if (input == null || " ") 

應該

if (input==null || input == " ") 
+1

會建議===而不是==。乾杯! – potatopeelings

0

添加到裏面全是關於正確對方回覆||運算符和優先級。

使用==是不是在大多數情況下做的,好東西不只是因爲0 == null等 - 如果你檢查,如果它實際上是空或空字符串,則這樣的事情是更安全:

if (input === null || input.trim() === "") { 
... 

這將檢查類型以及內容,因此將無法給出誤報。雖然如果輸入不是字符串,它會抱怨。

0

非常感謝!由於所有的答案彙總收到至今:

  • OR運營商(||)是比較input == null" ",其中後者始終計算爲真
  • ===優於==

再次感謝您的幫助和支持!