2017-02-19 69 views
0

我想弄清楚爲什麼我的if語句正在發送真正的輸出,儘管在我的if語句中爲null情況。有人可以解釋我的條件和空觸發原因爲什麼是錯的嗎?Javascript - 如果語句返回空儘管條件

if(startDate || startDate != null){ 
      filterQuery.push('dateStart=' + startDate); 
} 

在存在空值的情況下輸出dateStart=null

+1

'typeof startDate;'返回什麼? –

+0

如果'startDate'確實是'null',那麼這個條件肯定是錯誤的。 (如果'startDate'是undefined,那麼它也是錯誤的。) –

+0

它返回字符串 – cphill

回答

2

您已經saidtypeof startDate給你"string"。這是你的問題:"null"是一個truthy值(所以它通過第一次測試)是!= null(所以它通過第二次測試)。因此,您的條件是真實的,並且輸出將字符串"null"連接到您的錯誤消息。

+1

偉大的電話。我應該默認使用'typeof',然後跳轉到假設它是一個實際的'null'值 – cphill

-2

使用

if(typeof startDate !== "undefined") { 
+1

這與null值有什麼關係?這實際上確保將打印出'null',這是OP不需要的。 – trincot

+0

你們可能想檢查這一個http://stackoverflow.com/questions/5515310/is-there-a-standard-function-to-check-for-null-undefined-or-blank-variables-in –