2016-02-12 22 views
0

有這個問題已經好幾次了:我必須用JavaScript編寫一個函數。如果函數失敗,返回值是多少?

在知道如何檢查是否已分配所需的參數。我也知道如何檢查數據類型的修正。

當其中一個檢查失敗時,我喜歡用return來終止函數。

我不確定的事情:如果失敗,我應該返回什麼價值?

有些人用0或-1 ...

我見過的人做這樣的事情......

if (x === undefined) return 

...在不確定的回報是什麼結果。

或者我應該拋出異常而不是使用返回?

回答

1

直到您決定處理它時,返回值沒有任何意義。這意味着只要你在另一邊相應地處理它們,你可以隨心所欲地製作它們。例如:

function foo(){ 
    if(goodstuff){ 
    //do good stuff 
    }else{ 
    return 1; 
    } 
} 

這裏返回1並不意味着什麼。 1或-1只是一個錯誤的常見返回值。關鍵是,當函數被調用你處理「錯誤」:

var success = foo(); 

if(success === 1){ 
    alert('error'); 
}else{ 
    //do stuff 
} 

可以返回false,NULL,0,「oopsies」或任何其他值纔有您的具體情況。唯一重要的是你相應地處理它。通常返回false或0表示最簡單的檢查,這就是爲什麼他們通常使用。

要回答你的其他問題,只需做return;將只是終止函數而不發送一個值。如果您不一定需要返回錯誤代碼,但僅僅是不希望執行該函數中的其餘代碼,這非常有用。例如:

function bar(){ 
    if(notAWinner){ 
    return; 
    } 

    alert('you win a million dollars!'); 
} 
+0

謝謝你們兩位。 @詹姆斯索普希望投票你的答案。但是沒有權利這樣做。抱歉!你的回答對我也很有用。 –