2015-09-26 49 views
1

有人能解釋爲什麼警報被觸發,並指出該變量未定義,當if測試說它被定義?JQuery Javascript undefined paradox

var some_var; 
if(typeof some_var !== undefined){ 
    alert(some_var); 
} 

Fiddle

+0

'typeof運算some_var!==「undefined''作爲typeof運算的東西給一個字符串值 – Icepickle

+1

爲什麼你需要'typeof'是什麼?爲什麼不'some_var!== undefined'? – MinusFour

+0

@MinusFour,這是我第一次使用,但結果並不如預期。於是我使用'typeof'。我以前曾經使用過「undefined」,但是@ Tushar對嚴格不平等的解釋給了我一個寶貴的教訓。 – Ally

回答

2

typeof總是返回字符串。

正如您使用嚴格的不平等,條件評估爲true

您可以

  1. 使用undefined作爲字符串
  2. 使用!=不平等

Updated Fiddle

var some_var; 
 
if (typeof some_var !== 'undefined') { 
 
    alert(some_var); 
 
}

正如@MinusFour建議,您可以使用

if (some_var !== undefined) { 
+1

謝謝你的一個很好的解釋。 – Ally