2014-05-20 77 views
1

我得到這個開源JS項目,並試圖瀏覽代碼,我發現了好幾次:分號空行之後的if語句

if(evt.success){ 
    ; 
    evt.success(response.result); 
} 

";"

結尾的空行這是否意味着什麼?或者它只是一個打字錯誤?

+0

它在JavaScript中的有效聲明。 – thefourtheye

+4

這是一個有效的陳述,但它什麼也沒有,也沒有任何目的。 – Coda17

+1

......這並不意味着它是有道理的。 –

回答

3

這是完全有效的。它只會被視爲空行/聲明而不會發生任何事情。但是,這並不意味着你需要擔心的任何特別的東西,如果你要刪除它。

至於爲什麼它在你的代碼中,我不知道。如果它只是一個單一的實例,我會與一個錯字一起去,但是我可能會故意說出多個實例,或者是一些代碼生成的結果(也可能是一個錯字)或其他原因 - 我們不能知道沒有找到作出決定的人。

1

,什麼也不做,這樣你就可以刪除它,所以你不必看它,不用擔心

1

這是該方法在JavaScript中防禦性編程的一個有效的語句。考慮這樣的事情:

var y=x+f(a+b).toString() 

使用;:

var y=x+f 
(a+b).toString() 

,因爲這會被解釋在聲明開始之前排除了上述問題。

+1

是的,但爲什麼在if塊的開始?什麼時候什麼都沒有了?哦,你所謂的「真正的理由」是推測性的,你不知道爲什麼開發者會這樣做 – musefan

+1

這可能是程序員的習慣,但我想向OP解釋的是它背後的原因。是的,但是在上面的代碼中沒有意義。 –

+0

我的觀點是你正在解釋一個可能的原因,在你看來,你不能說它是確定的正確原因。你的答案似乎是措辭,你100%肯定這是正確的原因 – musefan