1

2 つの関数にパフォーマンスの違いはありますか? どちらがより正しいと考えられますか? 私が見逃しているベストプラクティスや経験則はありますか? ExampleB は私にはより簡潔で読みやすいように見えますが、ロジックが緊密に結び付いていないように見えるため、それほど明示的ではありません。

function exampleA() {
  if( true ) {
    return //do this;
  } else {
    return //do that;
  }
};

function exampleB(){
  if( true ) {
    return //do this;
  }
  return //do that;
};

前もって感謝します!

4

4 に答える 4

2

より正しいと見なされますか?私が見逃しているベストプラクティスまたは経験則はありますか

は必要ありませんelse。プログラマーは怠け者なので、2 番目のバージョンの方が優れていて、より簡潔です。しかし、何かがtrueorfalseまたは true または false の値を返す場合は、次の式を返すことができます。

if (something) { // Meh
  return true;
} else {
  return false;
}

if (something) return true; // OK
return false;

return something; // Nice

2 つの機能にパフォーマンスの違いはありますか

パフォーマンスは関係ないと思います。それはベスト プラクティスであり、可能な場合は早期リターンを使用してコードをより簡潔にすることです。

于 2013-08-12T07:38:38.743 に答える
1

私はいつも2番目に行ってきました。2 番目の例では、実際には意味上の問題はないと思います。また、文字数が少ないだけです。「少ないインク」アプローチに従って、例 B に進みます。

とはいえ、この例がまったくの初心者プログラマー向けである場合、else頭や尻尾を作るためにその節が必要になるかもしれません。文脈次第だと思います。

ここに画像の説明を入力

上記からわかるように、パフォーマンスは賢明です。2 番目は で最速0.08%なので、大きなパフォーマンスの違いではありません。実際、この違いはこのコード以外の変数に基づいている可能性があるため、実際のパフォーマンスの違いは事実上0.

于 2013-08-12T07:39:00.863 に答える
0

2 番目のものを使用できます (何も返さない場合は目的のない最後の return ステートメントを削除します)。

その理由は次のとおり
です。そこにコードをインデントする必要がないため、読みやすくなります (長いコード行がある場合は全体的に)。

于 2013-08-12T07:50:28.893 に答える
0

2 つの機能にパフォーマンスの違いはありますか

いいえ、重要または一貫した方法ではありません - jsPerf を確認してください: When test is true | test が false の場合:

真実:

テストがtrueの場合、jsPerfの結果は基本的に引き分けであることを示しています

間違い:

テストがfalseの場合、jsPerfの結果は基本的に引き分けであることを示しています

...どちらがより正しいと考えられますか?

それはスタイルの問題です。スタイルの質問は、SO の形式には適していません。

于 2013-08-12T07:40:29.137 に答える