// 第一种 if (test) { console.log('Yes~'); } else { console.log('No~'); } // 第二种 if (test) { console.log('Yes~'); return; } console.log('No~');
哪一種會比較好呢?第二種看著會清晰一點 少了縮排 但是字元相對第一種來說增加了 1 個 以性能方面來看的話哪個會更高一點? ~
第一種很醜很囉嗦有木有。 。 其次通常來說,在函數中判斷要盡可能早,以便用 return 退出函數所以一般第二種比較好些。 你可以改成這幾樣:
return
if (test) return console.log('Yes~') console.log('No~') if (test) console.log('Yes~') else console.log('No~') test?(console.log('Yes~')):(console.log('No~'))
當然你要在可讀性和簡單優雅上衡量,這更多的是個人風格問題。
如果是在函數裡面呢?
這不是效能的問題。當你的判斷條件很多的時候,第二種的優勢非常明顯,除非你願意寫很多else判斷語句應儘早結束,實際情況中,一般是多種不合格的條件+一種合格的條件。
判斷語句應儘早結束
if(满足不合格条件1) { return; } if(满足不合格条件2) { return; } //... //满足合格条件
第二種,第二種,第二種,可讀性好判斷不符合要求立即回傳
個人喜歡第二種,一旦邏輯結束,直接返回,條理清楚第一種那樣的簡單的還好,複雜的話需要看很多代碼才能找到返回的結果
第二種,某種程度上來說流程比較清楚(告訴你哪個能幹,哪個不能乾)。 不過可以不用if...else的時候比較好。比如說:
var ofn = { yes : function(){ console.log('yes'); }, no : function(){ console.log('no'); }, }; var key = test ? "yes" : "no"; ofn[key]();
第一種很醜很囉嗦有木有。 。
其次通常來說,在函數中判斷要盡可能早,以便用
return
退出函數所以一般第二種比較好些。
你可以改成這幾樣:
當然你要在可讀性和簡單優雅上衡量,這更多的是個人風格問題。
如果是在函數裡面呢?
這不是效能的問題。當你的判斷條件很多的時候,第二種的優勢非常明顯,除非你願意寫很多else
判斷語句應儘早結束
,實際情況中,一般是多種不合格的條件+一種合格的條件。第二種,第二種,第二種,可讀性好
判斷不符合要求立即回傳
個人喜歡第二種,一旦邏輯結束,直接返回,條理清楚
第一種那樣的簡單的還好,複雜的話需要看很多代碼才能找到返回的結果
第二種,某種程度上來說流程比較清楚(告訴你哪個能幹,哪個不能乾)。
不過可以不用if...else的時候比較好。比如說: