2017-03-15 7 views
0

私は主題に関する他の質問を見て、特に私の主題については何も見ていませんでした。復帰のベストプラクティス後のJavascript警告到達不能コード

このタイプのコードを使用するルールはありますか。私はこの場合のように感じます。ifはすべてreturn文を持っているので、elseを使うのは無駄です。

var __sortBySortType = function(x, y, index, type) { 
    if (type === "name") { 
     x[0]["sortname"] = x[0]["sortname"] || x[0]["name"]; 
     y[0]["sortname"] = y[0]["sortname"] || y[0]["name"]; 
     type = "sortname"; 
    } 
    if (typeof global !== "undefined" && typeof global.locale !== "undefined" && global.locale.compareString !== "undefined" && index === 0) { 
     return sim.locale.compareString(x[index][type], y[index][type]); 
    } 
    if (x[index][type] > y[index][type]) { 
     return 1; 
    } 
    if (x[index][type] < y[index][type]) { 
     return -1; 
    } 
    //If sorting by grades return sorting by whatever is diplayed (name, login or id) 
    return (index === 0)? 0 : __sortBySortType(x, y, 0, this.displayType); 
} 

おかげで

+0

"ベスト"は、代替アプローチを使用していくつかの評価を推測します。評価の基準がなければ、「最高」は単に意見です。 – RobG

+0

すべてのブランチが終了しているため、ここでは 'if'と 'else if'の間に違いはありません(これは文法上の選択のみです)。つまり、他の構造の選択にかかわらず、最後に三項に切り替えることは「醜い」と思う。 – user2864740

+0

私は自分のコードが動作していることを知っています。しかし、私はガイドラインに従うことが好きなので、ベストプラクティスルールが設定されているかどうか疑問に思っていました。 –

答えて

1

あなたは、各if文のリターンを持って考えると、違いがあってはなりません。将来の保守性のためにif-elseif-elseを実行することがベストプラクティスです。一見して読むのが一層容易であることがわかります。それはすべてが1つの選択肢のブロックとして関連していることを知っています。

+0

コメントの詳細を記載したドキュメントのリンクがありますか?ありがとう! –

関連する問題